{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from tqdm import tqdm\n",
    "import re\n",
    "from sklearn.feature_extraction.text import TfidfVectorizer\n",
    "from sklearn.model_selection import train_test_split\n",
    "from nltk.corpus import stopwords\n",
    "from nltk.stem import SnowballStemmer\n",
    "import pymongo\n",
    "import os\n",
    "import joblib\n",
    "from nltk.stem.wordnet import WordNetLemmatizer\n",
    "os.environ[\"KMP_DUPLICATE_LIB_OK\"]=\"TRUE\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 800/800 [00:01<00:00, 464.19it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                                Sentence SUBJpolit  \\\n",
      "0      while the bey hive was buzzing yesterday about...         1   \n",
      "1      all in the name of significantly expanding the...         2   \n",
      "2      In more than 80% of cases, children who cross ...         2   \n",
      "3      some lawmakers familiar with the conversation ...         1   \n",
      "4      on the other hand, is known as a more conserva...         2   \n",
      "...                                                  ...       ...   \n",
      "14031  That breaks down to:\\n\\n4,391 cases and 319 de...         2   \n",
      "14032  3,527 cases and 278 deaths in Northampton Coun...         2   \n",
      "14033  The counties have each averaged between 10 and...         2   \n",
      "14034  More deaths also were reported in counties tha...         2   \n",
      "14035  Steve Novak may be reached at snovak@lehighval...         2   \n",
      "\n",
      "                                                     tmp  \\\n",
      "0      while the bey hive was buzzing yesterday about...   \n",
      "1      all in the name of significantly expanding the...   \n",
      "2      In more than 80% of cases, children who cross ...   \n",
      "3      some lawmakers familiar with the conversation ...   \n",
      "4      on the other hand, is known as a more conserva...   \n",
      "...                                                  ...   \n",
      "14031  That breaks down to:\\n\\n4,391 cases and 319 de...   \n",
      "14032  3,527 cases and 278 deaths in Northampton Coun...   \n",
      "14033  The counties have each averaged between 10 and...   \n",
      "14034  More deaths also were reported in counties tha...   \n",
      "14035  Steve Novak may be reached at snovak@lehighval...   \n",
      "\n",
      "                              Sentence_without_stopwords  \n",
      "0      bey hive buzzing yesterday beyonces shocking b...  \n",
      "1      name significantly expanding range social safe...  \n",
      "2      in 80 case child cross usmexico border alone f...  \n",
      "3      lawmaker familiar conversation reportedly worr...  \n",
      "4      hand known conservative republican also become...  \n",
      "...                                                  ...  \n",
      "14031  that break to 4391 case 319 death lehigh count...  \n",
      "14032  3527 case 278 death northampton county 14 new ...  \n",
      "14033  the county averaged 10 15 new case day last se...  \n",
      "14034  more death also reported county border lehigh ...  \n",
      "14035     steve novak may reached snovaklehighvalleylive  \n",
      "\n",
      "[14036 rows x 4 columns]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sentence</th>\n",
       "      <th>Sentence_without_stopwords</th>\n",
       "      <th>SUBJpolit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>while the bey hive was buzzing yesterday about...</td>\n",
       "      <td>bey hive buzzing yesterday beyonces shocking b...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>In more than 80% of cases, children who cross ...</td>\n",
       "      <td>in 80 case child cross usmexico border alone f...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>\"It is also long overdue recognition of the w...</td>\n",
       "      <td>it also long overdue recognition work capitol ...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>We have been in direct communications with Mos...</td>\n",
       "      <td>we direct communication moscow imperative resp...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>A controversial proposal to allow Texans to ca...</td>\n",
       "      <td>a controversial proposal allow texan carry han...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6365</th>\n",
       "      <td>The number of daily coronavirus tests in Penns...</td>\n",
       "      <td>the number daily coronavirus test pennsylvania...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6366</th>\n",
       "      <td>That breaks down to:\\n\\n4,391 cases and 319 de...</td>\n",
       "      <td>that break to 4391 case 319 death lehigh count...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6367</th>\n",
       "      <td>3,527 cases and 278 deaths in Northampton Coun...</td>\n",
       "      <td>3527 case 278 death northampton county 14 new ...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6368</th>\n",
       "      <td>The counties have each averaged between 10 and...</td>\n",
       "      <td>the county averaged 10 15 new case day last se...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6369</th>\n",
       "      <td>More deaths also were reported in counties tha...</td>\n",
       "      <td>more death also reported county border lehigh ...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>6370 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                               Sentence  \\\n",
       "0     while the bey hive was buzzing yesterday about...   \n",
       "1     In more than 80% of cases, children who cross ...   \n",
       "2      \"It is also long overdue recognition of the w...   \n",
       "3     We have been in direct communications with Mos...   \n",
       "4     A controversial proposal to allow Texans to ca...   \n",
       "...                                                 ...   \n",
       "6365  The number of daily coronavirus tests in Penns...   \n",
       "6366  That breaks down to:\\n\\n4,391 cases and 319 de...   \n",
       "6367  3,527 cases and 278 deaths in Northampton Coun...   \n",
       "6368  The counties have each averaged between 10 and...   \n",
       "6369  More deaths also were reported in counties tha...   \n",
       "\n",
       "                             Sentence_without_stopwords  SUBJpolit  \n",
       "0     bey hive buzzing yesterday beyonces shocking b...          1  \n",
       "1     in 80 case child cross usmexico border alone f...          2  \n",
       "2     it also long overdue recognition work capitol ...          2  \n",
       "3     we direct communication moscow imperative resp...          2  \n",
       "4     a controversial proposal allow texan carry han...          2  \n",
       "...                                                 ...        ...  \n",
       "6365  the number daily coronavirus test pennsylvania...          2  \n",
       "6366  that break to 4391 case 319 death lehigh count...          2  \n",
       "6367  3527 case 278 death northampton county 14 new ...          2  \n",
       "6368  the county averaged 10 15 new case day last se...          2  \n",
       "6369  more death also reported county border lehigh ...          2  \n",
       "\n",
       "[6370 rows x 3 columns]"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from tqdm import tqdm\n",
    "import joblib\n",
    "from nltk.stem.wordnet import WordNetLemmatizer\n",
    "\n",
    "df = pd.read_excel('../data/data.xlsx')\n",
    "# Load files in different encoding formats\n",
    "df_extra_1 = pd.read_csv('../data/extra1.csv',encoding='utf-8')\n",
    "df_extra_2 = pd.read_csv('../data/extra2.csv',encoding='utf-8')\n",
    "df_extra_3 = pd.read_csv('../data/extra3.csv',encoding='utf-8')\n",
    "df_extra_4 = pd.read_csv('../data/extra4.csv',encoding='utf-8')\n",
    "df_extra_5 = pd.read_csv('../data/extra5.csv',encoding='utf-8')\n",
    "# df_extra_6 = pd.read_csv('../data/extra6.csv',encoding='utf-8')\n",
    "# Remove extra spaces in the text\n",
    "df_obj = df_extra_4.select_dtypes(['object'])\n",
    "df_extra_4[df_obj.columns] = df_obj.apply(lambda x: x.str.strip())\n",
    "# define the stopwords\n",
    "stop = stopwords.words('english')\n",
    "# remove the empty data, without this step, we can't go on.\n",
    "df = df.dropna(subset=['Sentence'])\n",
    "# --- debug ----\n",
    "df['SUBJpolit'] = np.where((df['SUBJpolit'] == 3) | (df['SUBJpolit'] == 5), 2,1)\n",
    "res=pd.concat([df_extra_1,df_extra_2,df_extra_3,df_extra_4,df_extra_5],ignore_index=True,axis=0)\n",
    "res = res.drop(columns=['Unnamed: 2'])\n",
    "res.rename(columns={'polit':'SUBJpolit'},inplace = True)\n",
    "# --- save target_origin_sentence\n",
    "target_origin=pd.concat([res,df],ignore_index=True,axis=0)\n",
    "# target_origin.to_csv('../data/target_origin571.csv',encoding='utf_8_sig',index=None)\n",
    "# target_origin.to_csv('../data/target_origin.csv',index=None)\n",
    "# --- save target_without_stopwords ---\n",
    "target_without_stopwords = target_origin\n",
    "comp = re.compile('[^A-Z^a-z^0-9^ ]')\n",
    "\n",
    "t_set = target_without_stopwords[target_without_stopwords['SUBJpolit']==1]\n",
    "f_set = target_without_stopwords[target_without_stopwords['SUBJpolit']==2]\n",
    "b_t_set = target_without_stopwords[target_without_stopwords['SUBJpolit']==1].iloc[0:int(len(t_set)*0.49)]\n",
    "\n",
    "b_set = pd.concat( [b_t_set,f_set], axis=0,ignore_index=True)\n",
    "b_set = b_set.sample(frac = 1)\n",
    "\n",
    "\n",
    "# clear\n",
    "# b_set.drop(b_set.index, inplace=True)\n",
    "\n",
    "# clear b_set\n",
    "myclient = pymongo.MongoClient(\"mongodb://127.0.0.1:27017/\")\n",
    "mydb = myclient[\"news\"]\n",
    "mycol = mydb[\"political\"]\n",
    "left_query = { \"nutrition.political_bias.subfeatures.value\": 0}\n",
    "right_query = { \"nutrition.political_bias.subfeatures.value\": 4}\n",
    "\n",
    "\n",
    "lr = mycol.find(left_query).limit(400)\n",
    "rr = mycol.find(right_query).limit(400)\n",
    "left_data = pd.DataFrame(columns=['Sentence'],data=[i['article']['text'] for i in list(lr)] )\n",
    "right_data = pd.DataFrame(columns=['Sentence'],data=[i['article']['text'] for i in list(rr)] )\n",
    "left_data['polit'] = 1\n",
    "right_data['polit'] = 2\n",
    "bb = pd.concat( [left_data,right_data], axis=0,ignore_index=True)\n",
    "\n",
    "for (index,item) in enumerate(tqdm(bb['Sentence'])):\n",
    "    tmp = pd.DataFrame(columns=['Sentence','SUBJpolit'],data=[(x.strip() ,bb['polit'][index]) for x in item.split('.') if len(x.strip())>50 and len(x)<140] )\n",
    "    b_set = pd.concat([b_set,tmp], axis=0,ignore_index=True)\n",
    "    \n",
    "b_set.to_csv('../data/sentences_set.csv',index=None)\n",
    "b_set['tmp'] = b_set['Sentence']\n",
    "b_set['Sentence_without_stopwords'] = b_set['Sentence'].apply(lambda w:' '.join([WordNetLemmatizer().lemmatize(comp.sub(\"\",word.lower())) for word in str(w).split() if word not in (stop)]))\n",
    "b_set['Sentence'] = b_set['tmp']\n",
    "print(b_set)\n",
    "# b_set.to_csv('../data/target_without_stopwords.csv',index=None)\n",
    "\n",
    "# print('none bias numbers: %s' % len(t_set))\n",
    "# print('bias numbers: %s' % len(f_set))\n",
    "# print('balanced none bias numbers: %s' % len(b_t_set))\n",
    "\n",
    "# joblib.dump(b_set,'../models/826_b_set.data')\n",
    "\n",
    "b_set = pd.DataFrame(columns=['Sentence','Sentence_without_stopwords','SUBJpolit'],data=[(b_set[b_set['Sentence_without_stopwords'] == item]['Sentence'].values[0], item ,b_set[b_set['Sentence_without_stopwords'] == item]['SUBJpolit'].values[0]) for item in b_set['Sentence_without_stopwords'] if (len(item.split(' '))>10 and len(item.split(' '))<20)] )\n",
    "b_set.to_csv('../data/version3.csv',index=None)\n",
    "b_set\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                               Sentence  polit  Unnamed: 2\n",
      "0     Biden issues warning to gas station owners on ...      2         NaN\n",
      "1     The company said its team \"worked safely and t...      2         NaN\n",
      "2     Republican governors are refusing aid from Dem...      2         NaN\n",
      "3     Democrats in Washington have approved trillion...      2         NaN\n",
      "4      but Republican state officials are pulling ba...      2         NaN\n",
      "...                                                 ...    ...         ...\n",
      "1698  We��re worried he��ll accept the Wall Street i...      2         NaN\n",
      "1699  Those of us who have worked on this for so lon...      2         NaN\n",
      "1700  So far, all the data points show that this adm...      2         NaN\n",
      "1701  We��re at a critical moment in the story arc o...      2         NaN\n",
      "1702  To work on these issues at this scale, it��s a...      2         NaN\n",
      "\n",
      "[1703 rows x 3 columns]\n",
      "                                               Sentence  SUBJpolit  Unnamed: 2\n",
      "1568  he looking much time reason would plead guilty...          2         NaN\n",
      "615   moscow bear responsibility stop attack origina...          2         NaN\n",
      "803   president joe biden signed executive order wed...          2         NaN\n",
      "901   face another daunting challenge reuniting unpr...          2         NaN\n",
      "116   tempting though might dismiss greene backbench...          2         NaN\n",
      "...                                                 ...        ...         ...\n",
      "1102  the justice department said charging document ...          2         NaN\n",
      "34    actually double democrat advantage generic ballot          2         NaN\n",
      "345   former president continually claim are still t...          2         NaN\n",
      "1471     we cannot embrace big lie embrace constitution          2         NaN\n",
      "768         i think president vice president understand          2         NaN\n",
      "\n",
      "[1703 rows x 3 columns]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sentence</th>\n",
       "      <th>SUBJpolit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>he looking much time reason would plead guilty...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>president joe biden signed executive order wed...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>face another daunting challenge reuniting unpr...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>fewer guest mask social distancing pooling arr...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>federal prosecutor also charged member wiscons...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>473</th>\n",
       "      <td>biden said white house asked whether netanyahu...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>474</th>\n",
       "      <td>whether trump run 2024 not republican party ha...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>475</th>\n",
       "      <td>im going able explain im going keep banging it...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>476</th>\n",
       "      <td>effort coronate stefanik incoming conference c...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>477</th>\n",
       "      <td>the justice department said charging document ...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>478 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                              Sentence  SUBJpolit\n",
       "0    he looking much time reason would plead guilty...          2\n",
       "1    president joe biden signed executive order wed...          2\n",
       "2    face another daunting challenge reuniting unpr...          2\n",
       "3    fewer guest mask social distancing pooling arr...          2\n",
       "4    federal prosecutor also charged member wiscons...          2\n",
       "..                                                 ...        ...\n",
       "473  biden said white house asked whether netanyahu...          2\n",
       "474  whether trump run 2024 not republican party ha...          2\n",
       "475  im going able explain im going keep banging it...          2\n",
       "476  effort coronate stefanik incoming conference c...          2\n",
       "477  the justice department said charging document ...          2\n",
       "\n",
       "[478 rows x 2 columns]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_extra_1 = pd.read_csv('../data/extra1.csv',encoding='utf-8')\n",
    "df_extra_2 = pd.read_csv('../data/extra2.csv',encoding='utf-8')\n",
    "df_extra_3 = pd.read_csv('../data/extra3.csv',encoding='utf-8')\n",
    "df_extra_4 = pd.read_csv('../data/extra4.csv',encoding='utf-8')\n",
    "df_extra_5 = pd.read_csv('../data/extra5.csv',encoding='utf-8')\n",
    "# df_extra_6 = pd.read_csv('../data/extra6.csv',encoding='utf-8')\n",
    "# Remove extra spaces in the text\n",
    "df_obj = df_extra_4.select_dtypes(['object'])\n",
    "df_extra_4[df_obj.columns] = df_obj.apply(lambda x: x.str.strip())\n",
    "# define the stopwords\n",
    "stop = stopwords.words('english')\n",
    "\n",
    "# remove the empty data, without this step, we can't go on.\n",
    "# --- debug ----\n",
    "target_origin=pd.concat([df_extra_1,df_extra_2,df_extra_3,df_extra_4,df_extra_5],ignore_index=True,axis=0)\n",
    "print(target_origin)\n",
    "target_origin.rename(columns={'polit':'SUBJpolit'},inplace = True)\n",
    "\n",
    "# b_set.to_csv('../data/sentence_set.csv',index=None)\n",
    "target_origin['Sentence'] = target_origin['Sentence'].apply(lambda w:' '.join([WordNetLemmatizer().lemmatize(comp.sub(\"\",word.lower())) for word in str(w).split() if word not in (stop)]))\n",
    "target_origin = target_origin.sample(frac = 1)\n",
    "# b_set.to_csv('../data/target_without_stopwords.csv',index=None)\n",
    "\n",
    "# print('none bias numbers: %s' % len(t_set))\n",
    "# print('bias numbers: %s' % len(f_set))\n",
    "# print('balanced none bias numbers: %s' % len(b_t_set))\n",
    "\n",
    "# joblib.dump(b_set,'../models/826_b_set.data')\n",
    "print(target_origin)\n",
    "tt = pd.DataFrame(columns=['Sentence','SUBJpolit'],data=[(item ,target_origin[target_origin['Sentence'] == item]['SUBJpolit'].values[0]) for item in target_origin['Sentence'] if (len(item.split(' '))>10 and len(item.split(' '))<15) ] )\n",
    "tt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1    2193\n",
      "2    2058\n",
      "Name: SUBJpolit, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "['../models/4251_lemma_clear.data']"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(b_set['SUBJpolit'].value_counts())\n",
    "b_set.to_csv('../data/target_without_stopwords_clear.csv',index=None)\n",
    "joblib.dump(b_set,'../models/4251_lemma_clear.data')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8687"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(b_set['Sentence'].values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['(Bloomberg) -- Luxshare Precision Industry Co',\n",
       " ' is acquiring Wistron Corp',\n",
       " '’s iPhone production business in China via a $472 million deal, potentially becoming the first mainland company to win a coveted role assembling Apple Inc',\n",
       " '’s device during U',\n",
       " ' trade tensions',\n",
       " '\\n\\nTaiwan-based Wistron, one of just three contract manufacturers that assemble Apple’s iPhones, said Friday it’s agreed to sell two subsidiaries in eastern China for 3',\n",
       " '3 billion yuan to Luxshare',\n",
       " ' One of those units, based in the city of Kunshan, is Wistron’s sole iPhone manufacturing site, according to people familiar with the company’s business',\n",
       " '\\n\\nThe deal is a win for Luxshare, which produces accessories and components from cables and chargers to antennas but is also the world’s biggest manufacturer of Apple’s AirPods -- a lucrative business that helped the company become one of 2019’s top Asian stock performers',\n",
       " ' Apple in turn has sought a mainland Chinese partner in part to broaden local sources during a trade war',\n",
       " '\\n\\nA Wistron representative said the Kunshan site being sold to Luxshare makes smartphones, notebooks and connected devices, and the company will shift production of some of those products elsewhere in China',\n",
       " ' She declined to comment on the its iPhone business',\n",
       " ' An Apple representative didn’t immediately respond to an emailed request for comment',\n",
       " '\\n\\nRead more: Apple’s AirPods Fire Up One of Asia’s Top Stocks in 2019\\n\\nLuxshare and other contract manufacturers have long sought to compete in assembling Apple’s most profitable device',\n",
       " ' Wistron is the smallest of three iPhone assemblers, lagging behind Pegatron Corp',\n",
       " ' and Hon Hai Precision Industry Co',\n",
       " ', the company also known as Foxconn',\n",
       " ' Wistron continues to assemble cheaper iPhones in India',\n",
       " '\\n\\n“With the acquisition of the Wistron’s iPhone unit, Luxshare can now become an iPhone assembler,” GF Securities analyst Jeff Pu said',\n",
       " ' “This will first pose a threat to Pegatron’s iPhone business in China',\n",
       " '”\\n\\nThe deal is slated to be completed by year’s end pending regulatory approval, Wistron said in an emailed statement',\n",
       " '\\n\\nRead more: IPhone Makers Look Beyond China in Supply-Chain Rethink\\n\\nFor more articles like this, please visit us at bloomberg',\n",
       " 'com\\n\\nSubscribe now to stay ahead with the most trusted business news source',\n",
       " '\\n\\n©2020 Bloomberg L']"
      ]
     },
     "execution_count": 122,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q = right_data['Sentence'][0].split('.')\n",
    "bbb=[]\n",
    "for i in q:\n",
    "    if(len(i)>10):\n",
    "        bbb.append(i)\n",
    "len(bbb)\n",
    "bbb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sentence</th>\n",
       "      <th>SUBJpolit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Second, it is incredibly narrow-minded to assu...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Libraries have a multitude of benefits, and m...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Some of these benefits include acting as a qu...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>One neighborhood found that, after a local li...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Similarly, a Pew survey conducted in 2015 fou...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5595</th>\n",
       "      <td>Some of these benefits include acting as a qu...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5596</th>\n",
       "      <td>One neighborhood found that, after a local li...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5597</th>\n",
       "      <td>Similarly, a Pew survey conducted in 2015 fou...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5598</th>\n",
       "      <td>People see libraries as a way to connect with...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5599</th>\n",
       "      <td></td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5600 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                               Sentence SUBJpolit\n",
       "0     Second, it is incredibly narrow-minded to assu...         2\n",
       "1      Libraries have a multitude of benefits, and m...         2\n",
       "2      Some of these benefits include acting as a qu...         2\n",
       "3      One neighborhood found that, after a local li...         2\n",
       "4      Similarly, a Pew survey conducted in 2015 fou...         2\n",
       "...                                                 ...       ...\n",
       "5595   Some of these benefits include acting as a qu...         1\n",
       "5596   One neighborhood found that, after a local li...         1\n",
       "5597   Similarly, a Pew survey conducted in 2015 fou...         1\n",
       "5598   People see libraries as a way to connect with...         1\n",
       "5599                                                            1\n",
       "\n",
       "[5600 rows x 2 columns]"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sentence_set.dropna(axis=0, how='any', inplace=True)\n",
    "sentence_set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.svm import LinearSVC, SVC\n",
    "import torch\n",
    "import transformers as tfs\n",
    "import warnings\n",
    "import joblib\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Some weights of the model checkpoint at bert-base-uncased were not used when initializing BertModel: ['cls.predictions.transform.LayerNorm.weight', 'cls.predictions.transform.dense.bias', 'cls.predictions.transform.LayerNorm.bias', 'cls.predictions.decoder.weight', 'cls.predictions.transform.dense.weight', 'cls.seq_relationship.weight', 'cls.predictions.bias', 'cls.seq_relationship.bias']\n",
      "- This IS expected if you are initializing BertModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n",
      "- This IS NOT expected if you are initializing BertModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n"
     ]
    }
   ],
   "source": [
    "# read model from lib\n",
    "model_class, tokenizer_class, pretrained_weights = (tfs.BertModel, tfs.BertTokenizer, 'bert-base-uncased')\n",
    "tokenizer = tokenizer_class.from_pretrained(pretrained_weights)\n",
    "model = model_class.from_pretrained(pretrained_weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train set shape: (4251, 2)\n",
      "1    2193\n",
      "2    2058\n",
      "Name: SUBJpolit, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print(\"Train set shape:\", b_set.shape)\n",
    "print(b_set['SUBJpolit'].value_counts())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Means to add [CLS] and [SEP] symbols at the beginning and end of the sentence\n",
    "train_tokenized = b_set['Sentence'].apply((lambda x: tokenizer.encode(x, add_special_tokens=True,max_length=1024,truncation=True)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0       [101, 4593, 2027, 3363, 2272, 2630, 2028, 2475...\n",
      "1       [101, 1996, 2678, 3609, 2265, 19748, 22206, 21...\n",
      "2       [101, 1045, 3062, 2293, 1045, 4900, 3129, 1045...\n",
      "3       [101, 1999, 2804, 2770, 3769, 16756, 3130, 221...\n",
      "4       [101, 1037, 2518, 3613, 2689, 2746, 3204, 2103...\n",
      "                              ...                        \n",
      "4246    [101, 1996, 2565, 6614, 3073, 2184, 2454, 2775...\n",
      "4247    [101, 4952, 2045, 5843, 7698, 2746, 2157, 2085...\n",
      "4248    [101, 3050, 3349, 2610, 2533, 2056, 4727, 2093...\n",
      "4249    [101, 6294, 6868, 1054, 2028, 7672, 2146, 2699...\n",
      "4250    [101, 2002, 2056, 2354, 7151, 3663, 2364, 6614...\n",
      "Name: Sentence, Length: 4251, dtype: object\n"
     ]
    }
   ],
   "source": [
    "print(train_tokenized)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train set shape: (4251, 33)\n"
     ]
    }
   ],
   "source": [
    "#process the sentences into the same length\n",
    "train_max_len = 0\n",
    "for i in train_tokenized.values:\n",
    "    if len(i) > train_max_len:\n",
    "        train_max_len = len(i)\n",
    "train_padded = np.array([i + [0] * (train_max_len-len(i)) for i in train_tokenized.values]) #add 0 sufix\n",
    "print(\"train set shape:\",train_padded.shape)\n",
    "\n",
    "#output：train set shape: (3000, 66)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "#let the model know which words are not to be processed \"the [PAD] symbol\"\n",
    "train_attention_mask = np.where(train_padded != 0, 1, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([4251, 33, 768])\n"
     ]
    }
   ],
   "source": [
    "#in order to improve the training speed, add a series of [PAD] symbols at the end of short sentences:\n",
    "train_input_ids = torch.tensor(train_padded).long()\n",
    "train_attention_mask = torch.tensor(train_attention_mask).long()\n",
    "with torch.no_grad():\n",
    "    train_last_hidden_states = model(train_input_ids, attention_mask=train_attention_mask)\n",
    "print(train_last_hidden_states[0].size())\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0       2\n",
      "1       1\n",
      "2       1\n",
      "3       2\n",
      "4       2\n",
      "       ..\n",
      "4246    2\n",
      "4247    2\n",
      "4248    2\n",
      "4249    1\n",
      "4250    1\n",
      "Name: SUBJpolit, Length: 4251, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sentence</th>\n",
       "      <th>SUBJpolit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>apparently theyll come blue oneplus nord onepl...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>the video color show astronaut cruising around...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>i fell love i chose husband i choose every day...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>in addition running pop schwartz previously he...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>a thing continue change coming month city mana...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4246</th>\n",
       "      <td>the program aim provide 10 million child digit...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4247</th>\n",
       "      <td>listen there lockdown coming right now abott s...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4248</th>\n",
       "      <td>los angeles police department said arrested th...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4249</th>\n",
       "      <td>susan collins r one democrat long tried  faile...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4250</th>\n",
       "      <td>he said knew bat situation main aim england wo...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4251 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                               Sentence  SUBJpolit\n",
       "0     apparently theyll come blue oneplus nord onepl...          2\n",
       "1     the video color show astronaut cruising around...          1\n",
       "2     i fell love i chose husband i choose every day...          1\n",
       "3     in addition running pop schwartz previously he...          2\n",
       "4     a thing continue change coming month city mana...          2\n",
       "...                                                 ...        ...\n",
       "4246  the program aim provide 10 million child digit...          2\n",
       "4247  listen there lockdown coming right now abott s...          2\n",
       "4248  los angeles police department said arrested th...          2\n",
       "4249  susan collins r one democrat long tried  faile...          1\n",
       "4250  he said knew bat situation main aim england wo...          1\n",
       "\n",
       "[4251 rows x 2 columns]"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import joblib\n",
    "\n",
    "joblib.dump(train_last_hidden_states,'../models/4251_lemma_clear.bert')\n",
    "print(b_set['SUBJpolit'])\n",
    "b_set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<bound method DataFrame.count of                                                Sentence  SUBJpolit\n",
      "1     the video color show astronaut cruising around...          1\n",
      "2     i fell love i chose husband i choose every day...          1\n",
      "5     5 billion dos would generate 15 billion 30 bil...          1\n",
      "10                     nick bromberg writer yahoo sport          1\n",
      "11    his decision odds 275 also dont offer value re...          1\n",
      "...                                                 ...        ...\n",
      "4239  shoot for the star first posthumous lp top aus...          1\n",
      "4240  eliminate outdoor container may contain water ...          1\n",
      "4243  disney amazon holding jim cramers action alert...          1\n",
      "4249  susan collins r one democrat long tried  faile...          1\n",
      "4250  he said knew bat situation main aim england wo...          1\n",
      "\n",
      "[2193 rows x 2 columns]>\n",
      "<bound method DataFrame.count of                                                Sentence  SUBJpolit\n",
      "0     apparently theyll come blue oneplus nord onepl...          2\n",
      "3     in addition running pop schwartz previously he...          2\n",
      "4     a thing continue change coming month city mana...          2\n",
      "6     that figure would drop 36 federal government s...          2\n",
      "7     a far mack know daughter didnt substance abuse...          2\n",
      "...                                                 ...        ...\n",
      "4244  explore scientist move closer mapping entire h...          2\n",
      "4245  trump part called fauci a nice man he made lot...          2\n",
      "4246  the program aim provide 10 million child digit...          2\n",
      "4247  listen there lockdown coming right now abott s...          2\n",
      "4248  los angeles police department said arrested th...          2\n",
      "\n",
      "[2058 rows x 2 columns]>\n"
     ]
    }
   ],
   "source": [
    "print(b_set[b_set['SUBJpolit']==1].count)\n",
    "print(b_set[b_set['SUBJpolit']==2].count)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.60297871 0.5610751  0.62180617 0.51193376 0.5        0.60814385\n",
      " 0.47254071 0.5237817  0.61115427 0.5        0.45324712 0.51452474\n",
      " 0.78659016 0.52855819 0.56932454 0.5        0.52344252 0.53289911\n",
      " 0.59023301 0.52265015 0.3836282  0.54604489 0.44560841 0.45321695\n",
      " 0.40785907 0.46981558 0.54639867 0.45321899 0.48915384 0.51096138\n",
      " 0.56108079 0.5        0.52343455 0.42357243 0.52158336 0.28634932\n",
      " 0.59326649 0.5408477  0.67222748 0.65466591 0.63667741 0.56110449\n",
      " 0.38799657 0.58065893 0.56109349 0.40746074 0.6241238  0.45265624\n",
      " 0.51410868 0.56108212 0.56109923 0.4532324  0.38734016 0.56073406\n",
      " 0.62973939 0.56110555 0.5        0.49236853 0.52899128 0.45322094\n",
      " 0.5357182  0.48315746 0.53933152 0.56733184 0.45322494 0.57818852\n",
      " 0.60590523 0.39759323 0.45320846 0.45512603 0.43866293 0.57312386\n",
      " 0.3538241  0.61112571 0.45324589 0.40154837 0.50694814 0.43742024\n",
      " 0.38073722 0.51464785 0.50726555 0.42794141 0.45322614 0.58681641\n",
      " 0.39845929 0.5        0.58756878 0.5        0.37420439 0.52345711\n",
      " 0.42949047 0.53989419 0.56107916 0.51971183 0.55702325 0.47718424\n",
      " 0.56108044 0.53092444 0.45320829 0.55574252 0.60851316 0.56107361\n",
      " 0.45321479 0.51530035 0.453221   0.5694677  0.51350245 0.56108884\n",
      " 0.53566686 0.57539671 0.45321838 0.56282607 0.48339997 0.6672452\n",
      " 0.23450334 0.44243832 0.5610806  0.48822798 0.63921773 0.53102229\n",
      " 0.5719965  0.52116239 0.46827256 0.58887418 0.50773479 0.43538739\n",
      " 0.55569339 0.4196284  0.5154139  0.49498133 0.48934845 0.5753549\n",
      " 0.5610676  0.45321213 0.5289112  0.60322753 0.52026832 0.3524091\n",
      " 0.7119909  0.60407037 0.63012804 0.57396799 0.41318344 0.46345028\n",
      " 0.56108171 0.69314147 0.45324091 0.43575871 0.47278199 0.43757239\n",
      " 0.45269788 0.45324384 0.37349328 0.40106822 0.51279656 0.56488168\n",
      " 0.41447508 0.59563172 0.59245414 0.5665755  0.42951335 0.45324668\n",
      " 0.62904704 0.56470764 0.5064056  0.41966763 0.39475288 0.4532277\n",
      " 0.56073406 0.45643178 0.53547081 0.52287077 0.31882181 0.60901009\n",
      " 0.5427848  0.55079267 0.57122667 0.60136525 0.5        0.58998323\n",
      " 0.60285712 0.46043676 0.58232163 0.47733681 0.51998076 0.45322418\n",
      " 0.50983021 0.47303136 0.47351308 0.41392189 0.45324089 0.45061724\n",
      " 0.4397466  0.58081918 0.47177569 0.56428491 0.69384617 0.56433389\n",
      " 0.41528402 0.51840238 0.60457069 0.59109863 0.48870155 0.32045813\n",
      " 0.45319637 0.51415714 0.58552302]\n",
      "207 207\n",
      "[0.56428491 0.46966393 0.3364326  0.59326649 0.49202903 0.453221\n",
      " 0.60450472 0.35496584 0.47346193 0.56561531 0.43714028 0.36747159\n",
      " 0.45321273 0.51452474 0.51836918 0.4803606  0.57396799 0.57539671\n",
      " 0.56829881 0.56745022 0.50860051 0.5        0.39759323 0.35324261\n",
      " 0.62087869 0.56228096 0.49447708 0.42647856 0.43742024 0.73810554\n",
      " 0.54156299 0.57851909 0.45321028 0.51743271 0.52567842 0.5610751\n",
      " 0.60297871 0.47879662 0.45322404 0.48478028 0.53436056 0.43866293\n",
      " 0.52265015 0.54429298 0.56110555 0.49364385 0.60246535 0.45324621\n",
      " 0.57312386 0.29993601 0.50974403 0.46113519 0.37349328 0.65062152\n",
      " 0.71252569 0.52437849 0.43371387 0.46664796 0.5478565  0.47448427\n",
      " 0.53289911 0.39432286 0.52862967 0.50683375 0.51916533 0.60614556\n",
      " 0.47365863 0.45305619 0.5289112  0.5375623  0.62087869 0.47718424\n",
      " 0.4266885  0.51415714 0.56106834 0.5313555  0.53834367 0.57000712\n",
      " 0.47848845 0.4123498  0.47308791 0.63524212 0.61052171 0.51570221\n",
      " 0.58036948 0.61548229 0.42357243 0.54762885 0.45211353 0.45324589\n",
      " 0.46864312 0.56504909 0.60590523 0.60136525 0.43459619 0.52158336\n",
      " 0.58019011 0.53661488 0.42981402 0.38877302 0.55222334 0.52345711\n",
      " 0.52116239 0.50983021 0.58618871 0.45582442 0.56433389 0.51410868\n",
      " 0.52287077 0.47296194 0.56107568 0.39863707 0.5        0.59794531\n",
      " 0.56108359 0.54593115 0.51350245 0.47339091 0.57119198 0.61112571\n",
      " 0.45323513 0.51758944 0.45321438 0.56111014 0.54474042 0.64464164\n",
      " 0.561069   0.52773454 0.56109309 0.5        0.54362494 0.44852224\n",
      " 0.45323667 0.6494698  0.45322854 0.45320408 0.47242339 0.69020317\n",
      " 0.56928206 0.47583993 0.4532403  0.45323405 0.48915384 0.4397466\n",
      " 0.38734016 0.58791286 0.39827511 0.56108203 0.37374596 0.69784145\n",
      " 0.40746074 0.63649087 0.58681641 0.52026832 0.44549955 0.5286381\n",
      " 0.50574759 0.53989419 0.39222155 0.45964939 0.47365012 0.2425135\n",
      " 0.53566686 0.45837985 0.40714623 0.56109579 0.53856603 0.62599059\n",
      " 0.56109101 0.43869978 0.53740623 0.58368359 0.60322753 0.4532365\n",
      " 0.47995649 0.47260504 0.48877162 0.45320948 0.45321108 0.5449147\n",
      " 0.54977376 0.55437825 0.42951335 0.56108044 0.5408477  0.43693808\n",
      " 0.56110678 0.49364505 0.41392189 0.4532324  0.41518834 0.51193376\n",
      " 0.43521571 0.77132918 0.41528402 0.40647169 0.32745206 0.49023659\n",
      " 0.49236853 0.62587832 0.47883767 0.56282607 0.333285   0.35331857\n",
      " 0.57078593 0.521754   0.53563678]\n",
      "207 207\n",
      "[0.60322753 0.37074898 0.38799657 0.46217567 0.33426606 0.66005221\n",
      " 0.64464164 0.45323667 0.56107307 0.52055777 0.54877528 0.45322557\n",
      " 0.51743271 0.46113519 0.47968948 0.48870155 0.61163854 0.59947555\n",
      " 0.39759323 0.47092285 0.4119621  0.42202422 0.44560841 0.45305619\n",
      " 0.50974403 0.55371316 0.53881637 0.53856603 0.42951335 0.60285712\n",
      " 0.57396799 0.53155264 0.58504443 0.60855267 0.5        0.5399173\n",
      " 0.56138932 0.63524212 0.45320414 0.52264415 0.62087869 0.61115427\n",
      " 0.40106822 0.5610751  0.52773454 0.561079   0.60614556 0.43869978\n",
      " 0.51758944 0.42949047 0.39350025 0.36887257 0.44151204 0.45321438\n",
      " 0.43538739 0.57933533 0.49447708 0.5610806  0.66922302 0.5\n",
      " 0.53758491 0.40647169 0.3524091  0.45321386 0.45887348 0.56109101\n",
      " 0.51998076 0.57851803 0.3573397  0.35331857 0.56807283 0.50637592\n",
      " 0.45321695 0.39222155 0.54156299 0.54977376 0.5        0.42097976\n",
      " 0.56110555 0.40714623 0.43587008 0.43575871 0.5        0.5577303\n",
      " 0.56108484 0.41392189 0.45321213 0.58081918 0.56107686 0.47339365\n",
      " 0.4054113  0.59605035 0.54604489 0.66983751 0.56587417 0.39781355\n",
      " 0.56488168 0.56073406 0.34503052 0.59023301 0.56110449 0.56534222\n",
      " 0.52857692 0.54376837 0.60954024 0.60268035 0.4803606  0.39583737\n",
      " 0.5154139  0.42647856 0.47883767 0.56108696 0.56266805 0.45323534\n",
      " 0.56073406 0.56635126 0.45322094 0.43371387 0.52058147 0.45928828\n",
      " 0.5436804  0.56228096 0.43742024 0.521754   0.33482244 0.52344252\n",
      " 0.46690629 0.45321934 0.44243832 0.47296194 0.4491088  0.52343455\n",
      " 0.71539939 0.53637444 0.45324621 0.41447508 0.4397466  0.45638526\n",
      " 0.45322736 0.45267716 0.56252692 0.5831132  0.55451012 0.42460324\n",
      " 0.6494698  0.49478327 0.45323323 0.53092444 0.47448427 0.57442751\n",
      " 0.3941871  0.43512309 0.57106484 0.45322736 0.56107509 0.55424397\n",
      " 0.42616119 0.60938578 0.56108671 0.38128375 0.41318344 0.53989419\n",
      " 0.53989419 0.56877564 0.5        0.6672452  0.55079267 0.51410868\n",
      " 0.62474421 0.55467243 0.56109052 0.57555132 0.59245414 0.3364326\n",
      " 0.43401094 0.67666873 0.51114117 0.5449147  0.39074735 0.51318087\n",
      " 0.4424372  0.42629091 0.43709001 0.58261416 0.47496981 0.53158783\n",
      " 0.45854371 0.52158336 0.45319637 0.561093   0.56109707 0.51530035\n",
      " 0.43757333 0.47346193 0.2910109  0.5427848  0.57122667 0.45321108\n",
      " 0.45322494 0.51279656 0.61112571 0.47879662 0.43693808 0.55329131\n",
      " 0.54593115 0.56745022 0.61989039]\n",
      "207 207\n",
      "[0.56110953 0.55491016 0.35331857 0.45512603 0.43587008 0.54394298\n",
      " 0.47448601 0.47254071 0.56282607 0.47365863 0.33634758 0.56109309\n",
      " 0.47242339 0.50574759 0.56110324 0.46827256 0.60901009 0.46113519\n",
      " 0.3941871  0.55569339 0.48697999 0.67645036 0.47365012 0.45507814\n",
      " 0.60938578 0.5610717  0.56108359 0.56211473 0.4266885  0.58681641\n",
      " 0.60851316 0.53985231 0.51570221 0.45216531 0.46690629 0.45323058\n",
      " 0.47883767 0.58908171 0.52649752 0.48657128 0.45323405 0.45320866\n",
      " 0.52158336 0.61989039 0.4119621  0.56108484 0.4491088  0.56433389\n",
      " 0.41644973 0.40785907 0.56561531 0.47848845 0.55392974 0.53102229\n",
      " 0.47303136 0.45964939 0.5753549  0.43757333 0.6494698  0.58670468\n",
      " 0.45696668 0.5        0.36561004 0.43693808 0.45320948 0.42951335\n",
      " 0.40724156 0.48877162 0.52055777 0.53547081 0.54977376 0.56635126\n",
      " 0.53856603 0.3364326  0.60268035 0.45670762 0.53881637 0.59245414\n",
      " 0.5        0.44875588 0.4123498  0.46664796 0.59486485 0.56110019\n",
      " 0.5286381  0.58065893 0.45320043 0.39759323 0.33808291 0.57122667\n",
      " 0.5        0.54376837 0.54737168 0.41946611 0.48315746 0.59023301\n",
      " 0.56252692 0.45321108 0.40647169 0.58019011 0.47154446 0.60457069\n",
      " 0.54639867 0.56107916 0.48901956 0.39475288 0.50726555 0.43668906\n",
      " 0.42629091 0.51611739 0.47496981 0.5357182  0.46259244 0.45320829\n",
      " 0.561069   0.62087869 0.62870482 0.4532277  0.44072767 0.58264602\n",
      " 0.63968139 0.58618871 0.36747159 0.5719965  0.57078593 0.52147053\n",
      " 0.56109426 0.51279656 0.51318087 0.4397466  0.56109988 0.58232163\n",
      " 0.78659016 0.46345028 0.59937455 0.5        0.40055072 0.34503052\n",
      " 0.561093   0.57106484 0.54570036 0.62537901 0.43709001 0.7389636\n",
      " 0.5610806  0.52229596 0.50974403 0.42202422 0.66005221 0.45321934\n",
      " 0.46042837 0.53758491 0.56073406 0.29993601 0.47138375 0.45323323\n",
      " 0.42281634 0.43117727 0.35316529 0.59581413 0.43281451 0.6241238\n",
      " 0.53155264 0.63380787 0.5280636  0.53834367 0.43371387 0.48915384\n",
      " 0.47351308 0.56109946 0.58036948 0.57851803 0.33482244 0.51549843\n",
      " 0.5        0.63667741 0.45319637 0.54429298 0.49015321 0.60713936\n",
      " 0.58552302 0.44633692 0.55033289 0.50896979 0.43459661 0.453221\n",
      " 0.53092444 0.59098961 0.56109101 0.56428491 0.4532324  0.38482344\n",
      " 0.5478565  0.5313555  0.47339091 0.5851164  0.45297748 0.45320652\n",
      " 0.5424208  0.56107686 0.54451862 0.38734016 0.45688302 0.52541736\n",
      " 0.39827511 0.45321899 0.43512309]\n",
      "207 207\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.41518834 0.57119198 0.45324091 0.58217888 0.45320414 0.46864312\n",
      " 0.56829881 0.50773479 0.56073406 0.54747925 0.62870482 0.35324261\n",
      " 0.42323054 0.30637253 0.42357243 0.4266885  0.47365012 0.54877528\n",
      " 0.69384617 0.66922302 0.50896979 0.56073406 0.53834367 0.54570036\n",
      " 0.58908171 0.43401094 0.39583737 0.55176784 0.51350245 0.39222155\n",
      " 0.45269788 0.62973939 0.47996854 0.5802418  0.51173305 0.45320948\n",
      " 0.56108203 0.50574759 0.40643234 0.59245414 0.47583993 0.53566686\n",
      " 0.54594456 0.3524091  0.5610751  0.59349248 0.45638526 0.45322568\n",
      " 0.78773502 0.53989419 0.59947555 0.51318087 0.53856603 0.60901009\n",
      " 0.39863707 0.50974403 0.47346193 0.5694677  0.57851803 0.3295431\n",
      " 0.45267716 0.44644142 0.4803606  0.56282607 0.47260504 0.43736556\n",
      " 0.57539671 0.64652496 0.35477412 0.45322404 0.58368359 0.58524527\n",
      " 0.46740749 0.47482574 0.48315746 0.54874699 0.45324621 0.45321273\n",
      " 0.45322094 0.48500877 0.64464164 0.46259244 0.49498133 0.60614556\n",
      " 0.48822798 0.45688302 0.49290744 0.51611739 0.58670468 0.45964939\n",
      " 0.45240389 0.54504462 0.56109426 0.48697999 0.56110678 0.65516643\n",
      " 0.5280693  0.58618871 0.48136554 0.49189494 0.56211473 0.36747159\n",
      " 0.5        0.45549385 0.34153979 0.54394298 0.6521304  0.56106459\n",
      " 0.49015321 0.56809586 0.62537901 0.5408477  0.54737168 0.56587417\n",
      " 0.54046375 0.45322736 0.43709001 0.52649752 0.38073722 0.59098961\n",
      " 0.54376837 0.58232163 0.60285712 0.40746074 0.43742024 0.56109707\n",
      " 0.45323058 0.46043676 0.60855267 0.53891584 0.56106834 0.43281451\n",
      " 0.67666873 0.3920924  0.4397466  0.4119621  0.3573397  0.57078593\n",
      " 0.61570504 0.56266805 0.45061724 0.56107441 0.5064056  0.45323405\n",
      " 0.27999156 0.39475288 0.6672452  0.39074735 0.47351308 0.47801781\n",
      " 0.45322594 0.45837985 0.46652735 0.51279656 0.45319983 0.48459699\n",
      " 0.42616119 0.3941871  0.40948125 0.56109923 0.37420439 0.47448601\n",
      " 0.41392189 0.43668906 0.38128375 0.2425135  0.56107361 0.56106671\n",
      " 0.60457069 0.45063081 0.5        0.51570221 0.53637444 0.36178663\n",
      " 0.5        0.45324089 0.65185578 0.60590523 0.53985231 0.4532365\n",
      " 0.36887257 0.45320043 0.56109101 0.56108326 0.56807283 0.58756878\n",
      " 0.5313555  0.46345028 0.60246535 0.561069   0.61112571 0.56110377\n",
      " 0.5474     0.54977376 0.5436804  0.5831132  0.58998323 0.52651323\n",
      " 0.5        0.59418464 0.39432286 0.60851316 0.54429298 0.48772534\n",
      " 0.71275021 0.5        0.56107916]\n",
      "207 207\n",
      "[0.5        0.453233   0.56108212 0.56107441 0.56109492 0.49202903\n",
      " 0.45321838 0.52828394 0.73282067 0.54046375 0.52431495 0.23450334\n",
      " 0.60528903 0.45320414 0.5719965  0.39074701 0.52343455 0.71252569\n",
      " 0.47177569 0.583911   0.51743271 0.56108079 0.4532277  0.59349248\n",
      " 0.56109579 0.43668906 0.41958658 0.4119621  0.58924267 0.62537901\n",
      " 0.43693808 0.47718424 0.58618871 0.60901009 0.49447708 0.57924077\n",
      " 0.69020317 0.45324089 0.56108696 0.50637592 0.58887418 0.53740623\n",
      " 0.61052171 0.45322736 0.49478327 0.61112571 0.45322614 0.56107413\n",
      " 0.45321487 0.53529162 0.45323323 0.54639867 0.6494698  0.50860051\n",
      " 0.46217567 0.61115427 0.61456775 0.54737168 0.40643234 0.48072972\n",
      " 0.36887257 0.3920924  0.45321479 0.53254675 0.42097976 0.36747159\n",
      " 0.36178663 0.48315746 0.41447508 0.73755024 0.56745022 0.42461178\n",
      " 0.57555132 0.57396799 0.45063081 0.445982   0.50773479 0.45320565\n",
      " 0.47135782 0.56428491 0.56108183 0.61989039 0.62599059 0.43117727\n",
      " 0.44184095 0.59098961 0.38128375 0.53637444 0.56108135 0.40785907\n",
      " 0.5424208  0.58756878 0.53563678 0.39350025 0.55329131 0.5\n",
      " 0.42951335 0.43866293 0.5        0.33895056 0.68530867 0.4397466\n",
      " 0.3364326  0.43709001 0.65185578 0.51096138 0.32862868 0.29993601\n",
      " 0.60855267 0.5286381  0.34503052 0.51279656 0.56252692 0.45322418\n",
      " 0.57040307 0.4168364  0.53092444 0.35316529 0.51611739 0.27999156\n",
      " 0.40116943 0.34153979 0.42425388 0.45323534 0.54504462 0.25763742\n",
      " 0.45324347 0.55574252 0.53758491 0.42323054 0.45620232 0.43736556\n",
      " 0.55222334 0.60851316 0.47260504 0.4428963  0.78659016 0.44049679\n",
      " 0.56109988 0.52854135 0.4242902  0.41996952 0.5577303  0.45265624\n",
      " 0.58261416 0.37374596 0.48339997 0.55447976 0.50694814 0.33482244\n",
      " 0.5        0.55371316 0.52567842 0.50777387 0.59794531 0.45323667\n",
      " 0.53436056 0.58908171 0.5        0.46827256 0.53989419 0.51193376\n",
      " 0.5969975  0.2910109  0.57933533 0.5        0.56107307 0.48657128\n",
      " 0.49189494 0.45323513 0.59605035 0.62973939 0.43046524 0.51173305\n",
      " 0.57000712 0.59581413 0.53194833 0.47801781 0.41420582 0.47459357\n",
      " 0.45321273 0.64464164 0.57539671 0.45216531 0.61463823 0.56110449\n",
      " 0.64652496 0.53093729 0.40746074 0.58368359 0.41966763 0.53289911\n",
      " 0.48697999 0.52058147 0.4266885  0.46259244 0.5399173  0.38734016\n",
      " 0.5694677  0.55878195 0.54451862 0.44875588 0.31882181 0.5280636\n",
      " 0.43757239 0.5064056  0.56107916]\n",
      "207 207\n",
      "[0.56109737 0.56110324 0.71275021 0.521754   0.28528649 0.56106671\n",
      " 0.45063081 0.5610751  0.42629091 0.5286381  0.5064056  0.56106814\n",
      " 0.57312386 0.57851803 0.52116239 0.56106459 0.47138375 0.53035984\n",
      " 0.3364326  0.4532403  0.45211353 0.56109349 0.45324223 0.40647169\n",
      " 0.53013046 0.58670468 0.445982   0.53093729 0.40106822 0.49202903\n",
      " 0.55437825 0.42616119 0.57396799 0.54594456 0.39074701 0.37074898\n",
      " 0.56109923 0.65516643 0.54971608 0.60268035 0.4123498  0.40788657\n",
      " 0.56110377 0.3920924  0.46113519 0.50508171 0.56108326 0.46217567\n",
      " 0.47848845 0.54382189 0.58036948 0.45319983 0.41392189 0.43709001\n",
      " 0.54429298 0.57000712 0.44560841 0.60713936 0.56108484 0.51611739\n",
      " 0.30795333 0.45620232 0.61192959 0.54874699 0.56064641 0.65062152\n",
      " 0.51916533 0.53035984 0.56108171 0.3836282  0.55878195 0.62087869\n",
      " 0.43715521 0.50896979 0.45670762 0.52437849 0.51279656 0.53933152\n",
      " 0.41996952 0.50726555 0.47278199 0.54747925 0.31882181 0.45320414\n",
      " 0.4491088  0.44151204 0.47879662 0.52287077 0.60322753 0.48136554\n",
      " 0.64464164 0.56470764 0.4054113  0.53985231 0.39827511 0.35496584\n",
      " 0.4424372  0.40154837 0.45324089 0.56534222 0.56107509 0.32045813\n",
      " 0.56109812 0.60285712 0.45324621 0.45643178 0.38734016 0.46497742\n",
      " 0.29993601 0.49129936 0.50983021 0.45582442 0.7389636  0.59098961\n",
      " 0.35331857 0.45320043 0.44767302 0.5        0.5753549  0.56252692\n",
      " 0.56109988 0.5280693  0.51114117 0.41644973 0.56106834 0.51743271\n",
      " 0.43401094 0.54762885 0.54474042 0.37281057 0.49178006 0.46981558\n",
      " 0.45323534 0.62599059 0.3538241  0.58261416 0.5719965  0.57924077\n",
      " 0.45321695 0.49247104 0.56108183 0.43906395 0.60457069 0.49478327\n",
      " 0.38814058 0.45321438 0.5694677  0.69784145 0.57119198 0.39225387\n",
      " 0.45803807 0.61548229 0.49364385 0.45324589 0.53158783 0.45324504\n",
      " 0.45267716 0.5478565  0.50860051 0.45512603 0.59563172 0.5\n",
      " 0.46664796 0.33895056 0.56108079 0.63649087 0.5        0.40116943\n",
      " 0.5610717  0.56109492 0.45321108 0.561079   0.45323405 0.6241238\n",
      " 0.45322418 0.5        0.49290744 0.47995649 0.56211473 0.45321899\n",
      " 0.58618871 0.53092444 0.45322614 0.73282067 0.56433389 0.56111014\n",
      " 0.59418464 0.43459619 0.61127474 0.71252569 0.5        0.69314147\n",
      " 0.40746074 0.54394298 0.54376837 0.45322736 0.4428963  0.51530035\n",
      " 0.59581413 0.54593115 0.40714623 0.35240742 0.43459661 0.41518834\n",
      " 0.56107441 0.60450472 0.453221  ]\n",
      "207 207\n",
      "[0.65466591 0.54156299 0.54429298 0.56108044 0.52229596 0.40643234\n",
      " 0.52055777 0.52773454 0.4532324  0.59098961 0.45323337 0.56110449\n",
      " 0.56211473 0.51623606 0.52862967 0.49447708 0.46740749 0.51193376\n",
      " 0.29993601 0.5        0.58887418 0.45670762 0.5154139  0.51294003\n",
      " 0.73755024 0.69314147 0.5237817  0.78659016 0.45320358 0.63012804\n",
      " 0.59418464 0.38482344 0.50773479 0.63667741 0.44644142 0.71252569\n",
      " 0.54971608 0.46865366 0.5085463  0.56932454 0.58756878 0.53436056\n",
      " 0.60532347 0.53661488 0.39781355 0.52541736 0.48500877 0.56108484\n",
      " 0.50861921 0.37583642 0.45322557 0.56108171 0.49015321 0.51279656\n",
      " 0.56110183 0.42281634 0.69384617 0.56107307 0.61989039 0.51711134\n",
      " 0.45063081 0.44852224 0.45322594 0.5554417  0.45887348 0.45321934\n",
      " 0.5        0.47308791 0.43117727 0.62587832 0.46690629 0.52058147\n",
      " 0.55392974 0.43401094 0.36178663 0.5        0.46652735 0.71539939\n",
      " 0.5        0.48915384 0.55437825 0.57442751 0.23450334 0.68530867\n",
      " 0.56109101 0.47459357 0.43736556 0.5577303  0.45322568 0.55702325\n",
      " 0.47351308 0.47879662 0.3538241  0.38877302 0.30637253 0.45638526\n",
      " 0.54570036 0.48772534 0.47968948 0.60407037 0.53891584 0.43757239\n",
      " 0.5610806  0.59947555 0.44243832 0.59418464 0.40647169 0.47260504\n",
      " 0.58232163 0.56809586 0.5        0.56110192 0.51998076 0.52158336\n",
      " 0.66922302 0.52287077 0.56504909 0.48877162 0.56470764 0.58681641\n",
      " 0.5427848  0.58998323 0.45322094 0.47339091 0.6521304  0.57818852\n",
      " 0.53254675 0.48607533 0.43693808 0.42425388 0.51096138 0.45324089\n",
      " 0.45324347 0.63380787 0.561069   0.3573397  0.5610717  0.50574759\n",
      " 0.62599059 0.53933152 0.56109812 0.58724209 0.3364326  0.34153979\n",
      " 0.41318344 0.45320414 0.42097976 0.5399173  0.33808291 0.47982726\n",
      " 0.51350245 0.65516643 0.71252569 0.42357243 0.58065893 0.56108135\n",
      " 0.54474042 0.47177569 0.38073722 0.35477412 0.54848016 0.5610676\n",
      " 0.56488168 0.56109309 0.37349328 0.46084028 0.49290744 0.56745022\n",
      " 0.36561004 0.40948125 0.56107916 0.56108183 0.45321487 0.54762885\n",
      " 0.49247104 0.54362494 0.48657128 0.43046524 0.5        0.65062152\n",
      " 0.45321213 0.4428963  0.45324384 0.5289112  0.48339997 0.46259244\n",
      " 0.58618871 0.45322854 0.62087869 0.583911   0.58504443 0.3860457\n",
      " 0.5        0.33634758 0.5770423  0.58924267 0.4532292  0.45507814\n",
      " 0.55033289 0.56282607 0.36747159 0.57000712 0.53035984 0.60901009\n",
      " 0.60457069 0.55176784 0.45320408]\n",
      "207 207\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.55424397 0.51096138 0.45323323 0.5        0.45322568 0.41420582\n",
      " 0.57549382 0.54394298 0.45323513 0.47482574 0.56111014 0.56877564\n",
      " 0.55878195 0.445982   0.57119198 0.38128375 0.45320832 0.44633692\n",
      " 0.53253757 0.44852224 0.47448601 0.47351308 0.62474421 0.45216531\n",
      " 0.47242339 0.5        0.45324621 0.45810857 0.5        0.56109737\n",
      " 0.48772534 0.57442751 0.58618871 0.5        0.68530867 0.45582442\n",
      " 0.380605   0.5289112  0.45322814 0.52567842 0.5610806  0.58065893\n",
      " 0.39092009 0.45670762 0.56107568 0.42460324 0.36747159 0.44243832\n",
      " 0.42647856 0.57851909 0.51464785 0.46690312 0.53227191 0.38073722\n",
      " 0.55447976 0.5        0.58791286 0.47278199 0.56109309 0.41518834\n",
      " 0.54429298 0.50574759 0.62087869 0.56807283 0.39222155 0.5357182\n",
      " 0.56110019 0.58261416 0.5        0.47339091 0.41447508 0.45964939\n",
      " 0.57396799 0.61456775 0.47583993 0.45323534 0.56109426 0.40714623\n",
      " 0.67645036 0.39350025 0.59937455 0.36923077 0.43714028 0.5694677\n",
      " 0.37583642 0.45321273 0.43401094 0.63649087 0.51114117 0.5851164\n",
      " 0.47718424 0.57924077 0.51193376 0.42097976 0.47308791 0.4803606\n",
      " 0.51998076 0.46664796 0.5610717  0.45211353 0.5        0.45319637\n",
      " 0.45323058 0.64464164 0.41678962 0.42794141 0.49236853 0.55033289\n",
      " 0.45321958 0.43715521 0.5427848  0.61837869 0.39759323 0.46259244\n",
      " 0.5831132  0.64464164 0.45321483 0.43459619 0.30637253 0.46113519\n",
      " 0.56108044 0.5        0.6672452  0.56108326 0.43906395 0.40154837\n",
      " 0.44072767 0.54593115 0.44767302 0.60590523 0.61163854 0.78659016\n",
      " 0.56107441 0.6521304  0.45854371 0.50861921 0.56107918 0.52773454\n",
      " 0.53289911 0.46202834 0.48901956 0.43709001 0.51294003 0.58019011\n",
      " 0.3920924  0.4054113  0.561069   0.46043676 0.52158336 0.69314147\n",
      " 0.54474042 0.60450472 0.60297871 0.25763742 0.45638526 0.47092285\n",
      " 0.50726555 0.46572093 0.3860457  0.61127474 0.52058147 0.45323667\n",
      " 0.42981402 0.54737168 0.45324223 0.55491016 0.5        0.53563678\n",
      " 0.45320652 0.50777387 0.58752889 0.47365012 0.47459357 0.45320358\n",
      " 0.54639867 0.53035984 0.46865366 0.49478327 0.45322418 0.73810554\n",
      " 0.5313555  0.49447708 0.52854135 0.56108212 0.54747925 0.56211473\n",
      " 0.67222748 0.53131002 0.4532277  0.41213097 0.46652735 0.45321479\n",
      " 0.41958658 0.45324504 0.46690629 0.333285   0.55176784 0.71252569\n",
      " 0.5523444  0.5753549  0.45322094 0.4532365  0.31519276 0.44875588\n",
      " 0.43385161 0.45324347 0.5375623 ]\n",
      "207 207\n",
      "[0.55222334 0.57851909 0.54376837 0.45322418 0.54874699 0.56108135\n",
      " 0.45688302 0.51193376 0.41958658 0.40948125 0.49129936 0.47883767\n",
      " 0.45507814 0.43459661 0.53563678 0.40746074 0.51758944 0.62870482\n",
      " 0.46690629 0.45319637 0.48315746 0.53013046 0.71275021 0.53194833\n",
      " 0.45216531 0.60855267 0.42951335 0.52343455 0.49247104 0.47092285\n",
      " 0.5085463  0.53271752 0.42323054 0.53933152 0.56109309 0.27999156\n",
      " 0.51145562 0.56107918 0.52345711 0.41946611 0.53253759 0.45322594\n",
      " 0.43714028 0.45320043 0.65062152 0.56109052 0.52144656 0.5719965\n",
      " 0.43715521 0.47308791 0.5        0.42949047 0.56109988 0.45305619\n",
      " 0.45321931 0.56809586 0.50637592 0.33482244 0.56807283 0.45322557\n",
      " 0.5770423  0.63968139 0.49178006 0.35324261 0.56110183 0.44549955\n",
      " 0.53131002 0.57933533 0.48136554 0.45320846 0.5408477  0.53881637\n",
      " 0.45321213 0.52828394 0.45321479 0.46572093 0.56428491 0.45323513\n",
      " 0.58081918 0.5        0.56109349 0.5        0.445982   0.4803606\n",
      " 0.5        0.56561531 0.57585703 0.32862868 0.53093729 0.5\n",
      " 0.64464164 0.43512309 0.59486485 0.49290744 0.31519276 0.62587832\n",
      " 0.56110953 0.56112058 0.39583737 0.53834367 0.42460324 0.53158783\n",
      " 0.56064641 0.39475288 0.51096138 0.5        0.58670468 0.49189494\n",
      " 0.36561004 0.56110019 0.74108993 0.40643234 0.42425388 0.5610751\n",
      " 0.78659016 0.56109101 0.5554417  0.57555132 0.38073722 0.54117731\n",
      " 0.45211353 0.60532347 0.63921773 0.50726555 0.39074701 0.44243832\n",
      " 0.453896   0.5289112  0.56108171 0.4054113  0.6494698  0.45320829\n",
      " 0.69314147 0.48500877 0.52344252 0.59109863 0.53227191 0.3524091\n",
      " 0.60590523 0.5610806  0.3836282  0.56470764 0.45643178 0.45265624\n",
      " 0.45324712 0.54977376 0.5237817  0.43869978 0.39827511 0.45670762\n",
      " 0.59023301 0.52437849 0.60590523 0.56211473 0.39092009 0.56587417\n",
      " 0.41420582 0.3860457  0.4119621  0.57122667 0.5851164  0.6521304\n",
      " 0.50896979 0.47339365 0.5753549  0.57442751 0.40714623 0.55424397\n",
      " 0.56109492 0.42097976 0.56109226 0.50508171 0.52773454 0.59349248\n",
      " 0.48822798 0.34153979 0.56733184 0.57924077 0.52055777 0.52541736\n",
      " 0.5610717  0.50777387 0.57539671 0.47135782 0.58998323 0.5313555\n",
      " 0.71539939 0.5523444  0.52899128 0.4532324  0.60268035 0.46966393\n",
      " 0.44852224 0.51294003 0.5        0.39781355 0.38128375 0.45321483\n",
      " 0.4397466  0.56109946 0.41678962 0.56107916 0.47365012 0.49478327\n",
      " 0.59563172 0.43281451 0.48478028]\n",
      "207 207\n",
      "[0.47459357 0.45810857 0.52431495 0.54362494 0.57119198 0.53155264\n",
      " 0.45324091 0.4397466  0.36561004 0.65516643 0.56561531 0.56534222\n",
      " 0.43715521 0.5        0.50694814 0.47308791 0.59109863 0.47254071\n",
      " 0.50637592 0.54604489 0.49364385 0.42281634 0.43757333 0.25763742\n",
      " 0.67666873 0.58791286 0.52857692 0.58618871 0.45267716 0.55176784\n",
      " 0.60590523 0.47718424 0.45837985 0.54451862 0.52862967 0.42425388\n",
      " 0.43866293 0.57933533 0.5        0.39475288 0.5        0.5610717\n",
      " 0.43281451 0.61548229 0.56266805 0.78659016 0.52287077 0.33634758\n",
      " 0.56733184 0.45323058 0.5753549  0.45324504 0.58369905 0.56107686\n",
      " 0.3524091  0.45320358 0.37281057 0.521754   0.60528903 0.56109988\n",
      " 0.51897149 0.55371316 0.40658592 0.51916533 0.74108993 0.45324712\n",
      " 0.5523444  0.45321483 0.51415714 0.56109707 0.43714028 0.54848016\n",
      " 0.47482574 0.42461178 0.42794141 0.5        0.40785907 0.45670762\n",
      " 0.50983021 0.53985231 0.47351308 0.56109492 0.5424208  0.43459661\n",
      " 0.65073663 0.67222748 0.41518834 0.50726555 0.53253757 0.45321108\n",
      " 0.56635126 0.53035984 0.45322094 0.51410868 0.53271752 0.54747925\n",
      " 0.56110324 0.53566686 0.51570221 0.56108326 0.56112058 0.5\n",
      " 0.5        0.62087869 0.5064056  0.3748653  0.5694677  0.44549955\n",
      " 0.44049679 0.40154837 0.68418234 0.57442751 0.47583993 0.43757239\n",
      " 0.5        0.45324668 0.33426606 0.51173305 0.60457069 0.53571094\n",
      " 0.45269788 0.62087869 0.50508171 0.46864312 0.45323405 0.31882181\n",
      " 0.36747159 0.58368359 0.57924077 0.62904704 0.61163854 0.45324384\n",
      " 0.37420439 0.58724209 0.40948125 0.5289112  0.63012804 0.61115427\n",
      " 0.58261416 0.53563678 0.54737168 0.56108203 0.453221   0.61052171\n",
      " 0.50777387 0.3295431  0.54874699 0.58065893 0.4045381  0.40714623\n",
      " 0.5        0.66983751 0.50896979 0.61112571 0.56108484 0.56877564\n",
      " 0.53131002 0.56106814 0.5        0.37374596 0.56108183 0.47346193\n",
      " 0.61127474 0.45512603 0.45638526 0.56587417 0.78773502 0.31519276\n",
      " 0.48934845 0.5        0.49477854 0.51611739 0.43709001 0.53989419\n",
      " 0.43459619 0.45321899 0.50574759 0.47303136 0.38734016 0.52144656\n",
      " 0.43668906 0.56109946 0.60532347 0.56107445 0.56109579 0.53298933\n",
      " 0.45322568 0.45320043 0.56109812 0.61456775 0.60713936 0.46345028\n",
      " 0.53827898 0.4424372  0.45320652 0.51452474 0.44184095 0.57106484\n",
      " 0.48072972 0.56108884 0.45320866 0.45240389 0.42217425 0.45643178\n",
      " 0.62973939 0.71252569 0.4853459 ]\n",
      "207 207\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEHCAYAAACA3BA3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAZCUlEQVR4nO3df7xVdZ3v8ddHwEv4I39ADgoONDGjEBzSI9H0Qw31IVZi0g9NTewGaWlp021orOnhtR/cqVuTVwcHk1Ef8siMMq0hKUHUh4V5wF8QemVI8wgpQv5KSeB87h97wT0cN7BZnH32OZzX8/HYj73Wd33XWp/FAd5nfdfea0VmIknSrtqr0QVIknomA0SSVIoBIkkqxQCRJJVigEiSSunb6AK60sCBA3PYsGGNLkOSepQlS5Y8l5mDOrb3qgAZNmwYLS0tjS5DknqUiHiyWrtDWJKkUgwQSVIpBogkqZRedQ1EUv1s3LiR1tZWNmzY0OhSVFL//v0ZMmQI/fr1q6m/ASKpU7S2trLffvsxbNgwIqLR5WgXZSbr1q2jtbWV4cOH17SOQ1iSOsWGDRs4+OCDDY8eKiI4+OCDd+kM0gCR1GkMj55tV39+BogkqRQDRNIeY999962p3ze+8Y3S+7juuutYvXp16fX3JAaIpD3a5s2bX9fW0wOk2jE1ggEiaY+zaNEijj/+eD72sY8xevTobZZNnz6dV199lbFjx3LWWWcBcOONNzJu3DjGjh3Lpz71KTZv3szmzZuZMmUKb33rWxk9ejTf/e53mTt3Li0tLZx11lmMHTuWV199dZttX3PNNRxzzDE0NTUxefJkXnnlFQCeeeYZPvjBD9LU1ERTUxO//vWvAbjhhhsYM2YMTU1NnHPOOQBMmTKFuXPnbt3mlrOqasd02mmncfTRRzNq1ChmzZq1dZ3bb7+do446iqamJiZMmEBbWxsjRoxg7dq1ALS1tfGWt7yF5557brf+nP0Yr6ROd9nPlvO71S926jZHHro/X/3AqJr7//a3v2XZsmWv+0jqjBkzuPLKK3nwwQcBWLFiBT/84Q+599576devH5/+9KeZM2cOo0aN4umnn2bZsmUAPP/88xxwwAFceeWVfPvb36a5ufl1+zz99NOZOnUqAF/+8pe59tprueiii/jsZz/Lscceyy233MLmzZt5+eWXWb58OV//+te59957GThwIOvXr9/lY5o9ezYHHXQQr776KscccwyTJ0+mra2NqVOncvfddzN8+HDWr1/PXnvtxdlnn82cOXO4+OKLueOOO2hqamLgwIE1/3lW4xmIpD3SuHHjavo+w4IFC1iyZAnHHHMMY8eOZcGCBaxatYo3v/nNrFq1iosuuojbb7+d/ffff6fbWrZsGe9+97sZPXo0c+bMYfny5QAsXLiQCy64AIA+ffrwxje+kYULF/KhD31o63/iBx100C4f0xVXXEFTUxPjx4/nqaee4vHHH2fx4sW85z3v2dpvy3Y/8YlPcMMNNwCV4DnvvPN2ur+d8QxEUqfblTOFetlnn31q6peZnHvuuXzzm9983bKHHnqI+fPnc9VVV3HzzTcze/bsHW5rypQp/PSnP6WpqYnrrruORYsW7XC/1T4227dvX9ra2rb2ee2116oe06JFi7jjjjv4zW9+w4ABAzjuuOPYsGHDdrc7dOhQDjnkEBYuXMh9993HnDlzdngstfAMRFKv069fPzZu3AjAhAkTmDt3Ls8++ywA69ev58knn+S5556jra2NyZMnc/nll7N06VIA9ttvP1566aWq233ppZcYPHgwGzdu3OY/6AkTJjBz5kygcgH8xRdfZMKECdx8882sW7du636h8tiJJUuWAHDrrbdurbOjF154gQMPPJABAwbw6KOPsnjxYgDe8Y53cNddd/H73/9+m+0CfPKTn+Tss8/mIx/5CH369CnxJ7ctA0RSrzNt2jTGjBnDWWedxciRI/na177GSSedxJgxYzjxxBNZs2YNTz/9NMcddxxjx45lypQpW89QpkyZwvnnn1/1Ivrll1/O29/+dk488USOOOKIre3f+973uPPOOxk9ejRHH300y5cvZ9SoUVx66aUce+yxNDU18fnPfx6AqVOnctdddzFu3Djuu+++7Z5JnXzyyWzatIkxY8bwla98hfHjxwMwaNAgZs2axemnn05TUxMf/ehHt65z6qmn8vLLL3fK8BVAZGanbKgnaG5uTh8oJdXHihUrOPLIIxtdhnagpaWFSy65hHvuuWe7far9HCNiSWa+7lMDXgORpF5gxowZzJw5s1OufWzhEJYk9QLTp0/nySef5F3velenbdMAkdRpetOQ+J5oV39+BoikTtG/f3/WrVtniPRQW54H0r9//5rX8RqIpE4xZMgQWltbt94uQz3P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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "training_accuracy = []\n",
    "test_accuracy = []\n",
    "train_last_hidden_states = joblib.load('../models/826_clear.bert')\n",
    "b_set = joblib.load('../models/826_clear.data')\n",
    "\n",
    "train_features = train_last_hidden_states[0][:,0,:].numpy()\n",
    "train_labels = b_set['SUBJpolit']\n",
    "r_set = range(1,12)\n",
    "test_accuracy = []\n",
    "for i in r_set:\n",
    "    X_train, X_test, Y_train, Y_test = train_test_split(train_features, train_labels.astype('int'), random_state=i)\n",
    "    lr_clf = LogisticRegression()\n",
    "    lr_clf.fit(train_features, train_labels)\n",
    "    y_pred = svm_clf.predict_proba(X_test)\n",
    "    y_pred = y_pred[:, 0]\n",
    "    print(y_pred)\n",
    "    y_pred_prob = (y_pred > 0.8).astype('int')\n",
    "    print(len(Y_test),len(y_pred_prob))\n",
    "    svm_acu = precision_score(Y_test, y_pred_prob,average='micro')\n",
    "    test_accuracy.append(svm_acu)\n",
    "plt.plot(r_set, test_accuracy, label=\"lr test accuracy\")\n",
    "plt.ylabel(\"Accuracy\")\n",
    "plt.xlabel(\"random_state\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "Length of sequence: 1000\n",
      "[0.6199, 0.6221, 0.6228, 0.6278, 0.635, 0.615, 0.6257, 0.6259, 0.6384, 0.6128, 0.6362, 0.6367, 0.5986, 0.6285, 0.6254, 0.6217, 0.6423, 0.6169, 0.6175]\n",
      "[0.7505, 0.7518, 0.7506, 0.7521, 0.7505, 0.7526, 0.7502, 0.7509, 0.7516, 0.7512, 0.7504, 0.753, 0.7525, 0.7507, 0.7506, 0.7519, 0.7507, 0.7551, 0.7508]\n",
      "[0.6207, 0.6223, 0.6246, 0.6293, 0.6371, 0.6152, 0.6262, 0.6262, 0.6395, 0.6129, 0.6364, 0.6364, 0.6082, 0.6301, 0.6262, 0.6215, 0.6434, 0.6168, 0.6176]\n",
      "Best Threshold: 0.45 with F-Score: 0.6175\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 800x480 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<ggplot: (8774122339088)>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.datasets import make_classification     # 创建一个合成数据帧\n",
    "from sklearn.linear_model import LogisticRegression  # 分类模型\n",
    "from sklearn.model_selection import train_test_split # 分割数据帧\n",
    "from sklearn.metrics import roc_curve                # 计算ROC曲线\n",
    "from sklearn.metrics import precision_recall_curve   # 计算精确召回曲线\n",
    "from sklearn.metrics import f1_score                 # 计算f分数\n",
    "from sklearn.metrics import precision_score\n",
    "from sklearn.metrics import recall_score\n",
    "from plotnine import *\n",
    "import plotnine\n",
    "import joblib\n",
    "# svm\n",
    "train_last_hidden_states = joblib.load('../models/4251_clear.bert')\n",
    "b_set = joblib.load('../models/4251_clear.data')\n",
    "\n",
    "X_train = train_last_hidden_states[0][:,0,:].numpy()\n",
    "Y_train = b_set['SUBJpolit']\n",
    "b_recall_set = []\n",
    "b_f1_set = []\n",
    "b_acc_set = []\n",
    "for i in range(1,20):\n",
    "    \n",
    "    train_features, test_features, train_labels, test_labels = train_test_split(X_train, Y_train.astype('int'),test_size=0.3, random_state=i)\n",
    "\n",
    "    lr_clf = LogisticRegression()\n",
    "    # clf = SVC(C=0.8, kernel='linear', gamma=20, decision_function_shape='ovr',probability=True)\n",
    "    lr_clf.fit(train_features, train_labels.astype('int').ravel())\n",
    "    y_pred = lr_clf.predict_proba(test_features)\n",
    "    y_pred = y_pred[:, 1]\n",
    "    # get thredshold set\n",
    "    thresholds = np.arange(0.0, 1.0, 0.001)\n",
    "    fscore = np.zeros(shape=(len(thresholds)))\n",
    "    rcscore = np.zeros(shape=(len(thresholds)))\n",
    "    accu = np.zeros(shape=(len(thresholds)))\n",
    "    print('Length of sequence: {}'.format(len(thresholds)))\n",
    "\n",
    "    for index, elem in enumerate(thresholds):\n",
    "        y_pred_prob = (y_pred > elem).astype('int')+1\n",
    "        fscore[index] = f1_score(test_labels, y_pred_prob,average='weighted')\n",
    "        rcscore[index] = recall_score(test_labels, y_pred_prob,average='weighted')\n",
    "        accu[index] = precision_score(test_labels, y_pred_prob,average='weighted')\n",
    "    # print (clf.score(test_features, test_labels))\n",
    "    # print (sum(y_pred)/len(y_pred))\n",
    "\n",
    "    index = np.argmax(fscore)\n",
    "    ac_index = np.argmax(accu)\n",
    "    rc_index = np.argmax(rcscore)\n",
    "\n",
    "    thresholdOpt = round(thresholds[index], ndigits = 4)\n",
    "    ac_thresholdOpt = round(thresholds[ac_index], ndigits = 4)\n",
    "    rc_thresholdOpt = round(thresholds[rc_index], ndigits = 4)\n",
    "    fscoreOpt = round(fscore[index], ndigits = 4)\n",
    "    acOpt = round(accu[ac_index], ndigits = 4)\n",
    "    rcOpt = round(rcscore[rc_index], ndigits = 4)\n",
    "    b_recall_set.append(rcOpt)\n",
    "    b_f1_set.append(fscoreOpt)\n",
    "    b_acc_set.append(acOpt)\n",
    "print(b_f1_set)   \n",
    "print(b_acc_set)   \n",
    "print(b_recall_set)   \n",
    "print('Best Threshold: {} with F-Score: {}'.format(thresholdOpt, fscoreOpt))\n",
    "df_threshold_tuning = pd.DataFrame({'F-score':fscore,\n",
    "                                    'Threshold':thresholds})\n",
    "df_threshold_tuning_ac = pd.DataFrame({'Accuracy':accu,\n",
    "                                    'Threshold':thresholds})\n",
    "df_threshold_tuning_rc = pd.DataFrame({'recall':rcscore,\n",
    "                                    'Threshold':thresholds})\n",
    "df_threshold_tuning.head()\n",
    "\n",
    "plotnine.options.figure_size = (8, 4.8)\n",
    "(\n",
    "    ggplot(data = df_threshold_tuning)+\n",
    "    geom_point(aes(x = 'Threshold',\n",
    "                   y = 'F-score'),\n",
    "               size = 0.4)+\n",
    "    geom_point(aes(x = thresholdOpt,\n",
    "                   y = fscoreOpt),\n",
    "               color = '#981220',\n",
    "               size = 4)+\n",
    "    geom_line(aes(x = 'Threshold',\n",
    "                   y = 'F-score'))+\n",
    "    geom_text(aes(x = thresholdOpt,\n",
    "                  y = fscoreOpt),\n",
    "              label = 'Optimal threshold \\n for class: {}'.format(thresholdOpt),\n",
    "              nudge_x = 0,\n",
    "              nudge_y = -0.10,\n",
    "              size = 10,\n",
    "              fontstyle = 'italic')+\n",
    "    labs(title = 'Threshold Tuning Curve')+\n",
    "    xlab('Threshold')+\n",
    "    ylab('F-score')+\n",
    "    theme_minimal()\n",
    ")\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best Threshold: 0.003 with Accuracy: 0.7521\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 800x480 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<ggplot: (8774158406343)>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print('Best Threshold: {} with Accuracy: {}'.format(ac_thresholdOpt, acOpt))\n",
    "\n",
    "plotnine.options.figure_size = (8, 4.8)\n",
    "(\n",
    "    ggplot(data = df_threshold_tuning_ac)+\n",
    "    geom_point(aes(x = 'Threshold',\n",
    "                   y = 'Accuracy'),\n",
    "               size = 0.4)+\n",
    "    geom_point(aes(x = ac_thresholdOpt,\n",
    "                   y = acOpt),\n",
    "               color = '#981220',\n",
    "               size = 4)+\n",
    "    geom_line(aes(x = 'Threshold',\n",
    "                   y = 'Accuracy'))+\n",
    "    geom_text(aes(x = ac_thresholdOpt,\n",
    "                  y = acOpt),\n",
    "              label = 'Optimal threshold \\n for class: {}'.format(ac_thresholdOpt),\n",
    "              nudge_x = 0,\n",
    "              nudge_y = -0.10,\n",
    "              size = 10,\n",
    "              fontstyle = 'italic')+\n",
    "    labs(title = 'Threshold Tuning Curve')+\n",
    "    xlab('Threshold')+\n",
    "    ylab('Accuracy')+\n",
    "    theme_minimal()\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best Threshold: 0.552 with recall: 0.6293\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 800x480 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<ggplot: (8774158399359)>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print('Best Threshold: {} with recall: {}'.format(rc_thresholdOpt, rcOpt))\n",
    "\n",
    "plotnine.options.figure_size = (8, 4.8)\n",
    "(\n",
    "    ggplot(data = df_threshold_tuning_rc)+\n",
    "    geom_point(aes(x = 'Threshold',\n",
    "                   y = 'recall'),\n",
    "               size = 0.4)+\n",
    "    geom_point(aes(x = rc_thresholdOpt,\n",
    "                   y = rcOpt),\n",
    "               color = '#981220',\n",
    "               size = 4)+\n",
    "    geom_line(aes(x = 'Threshold',\n",
    "                   y = 'recall'))+\n",
    "    geom_text(aes(x = rc_thresholdOpt,\n",
    "                  y = rcOpt),\n",
    "              label = 'Optimal threshold \\n for class: {}'.format(rc_thresholdOpt),\n",
    "              nudge_x = 0,\n",
    "              nudge_y = -0.10,\n",
    "              size = 10,\n",
    "              fontstyle = 'italic')+\n",
    "    labs(title = 'Threshold Tuning Curve')+\n",
    "    xlab('Threshold')+\n",
    "    ylab('recall')+\n",
    "    theme_minimal()\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7518051633972398\n",
      "0.6220946406875202\n",
      "0.622257053291536\n",
      "max: 0.7518, with threshold=0.6: 0.6107 \n",
      "max: 0.6223, with threshold=0.6: 0.6097 \n",
      "max: 0.6221, with threshold=0.6: 0.6035 \n",
      "----------------------------------------\n",
      "max: 0.7518, with threshold=0.7: 0.5994 \n",
      "max: 0.6223, with threshold=0.7: 0.5886 \n",
      "max: 0.6221, with threshold=0.7: 0.5632 \n",
      "----------------------------------------\n",
      "max: 0.7518, with threshold=0.8: 0.6012 \n",
      "max: 0.6223, with threshold=0.8: 0.5690 \n",
      "max: 0.6221, with threshold=0.8: 0.5074 \n",
      "----------------------------------------\n",
      "max: 0.7518, with threshold=0.2: 0.6343 \n",
      "max: 0.6223, with threshold=0.2: 0.5682 \n",
      "max: 0.6221, with threshold=0.2: 0.5258 \n"
     ]
    }
   ],
   "source": [
    "print(max(accu))\n",
    "print(max(fscore))\n",
    "print(max(rcscore))\n",
    "i6 = 0.6\n",
    "i7 = 0.7\n",
    "i8 = 0.8\n",
    "i9 = 0.211\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(accu),i6,accu[int(i6*1000)]))\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(rcscore),i6,rcscore[int(i6*1000)]))\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(fscore),i6,fscore[int(i6*1000)]))\n",
    "print('-'*40)\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(accu),i7,accu[int(i7*1000)]))\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(rcscore),i7,rcscore[int(i7*1000)]))\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(fscore),i7,fscore[int(i7*1000)]))\n",
    "print('-'*40)\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(accu),i8,accu[int(i8*1000)]))\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(rcscore),i8,rcscore[int(i8*1000)]))\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(fscore),i8,fscore[int(i8*1000)]))\n",
    "print('-'*40)\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(accu),i9,accu[int(i9*1000)]))\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(rcscore),i9,rcscore[int(i9*1000)]))\n",
    "print('max: %.4f, with threshold=%.1f: %.4f ' %(max(fscore),i9,fscore[int(i9*1000)]))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.22704179, 0.22704179, 0.75073084, 0.75090919, 0.75090919,\n",
       "       0.75108782, 0.75126673, 0.75126673, 0.75144593, 0.75144593,\n",
       "       0.75180516, 0.75180516, 0.69362157, 0.69961867, 0.66470246,\n",
       "       0.67159501, 0.67159501, 0.67159501, 0.67159501, 0.67752904,\n",
       "       0.67752904, 0.67752904, 0.691272  , 0.69487596, 0.69487596,\n",
       "       0.69812003, 0.67637763, 0.67637763, 0.66025354, 0.64522754,\n",
       "       0.64902258, 0.64902258, 0.64902258, 0.64284928, 0.64630088,\n",
       "       0.64630088, 0.64956616, 0.63006832, 0.63664085, 0.63970075,\n",
       "       0.63970075, 0.63970075, 0.64262416, 0.63581403, 0.62959507,\n",
       "       0.62959507, 0.63244681, 0.63782506, 0.64036462, 0.63471665,\n",
       "       0.63471665, 0.6371858 , 0.63957083, 0.64187636, 0.64187636,\n",
       "       0.64410666, 0.63893993, 0.64111999, 0.62733679, 0.62960467,\n",
       "       0.63602692, 0.63602692, 0.63805021, 0.63582177, 0.6396292 ,\n",
       "       0.63752532, 0.62650993, 0.62650993, 0.62650993, 0.6284047 ,\n",
       "       0.62504133, 0.62504133, 0.62504133, 0.62689372, 0.62689372,\n",
       "       0.62689372, 0.62689372, 0.61209303, 0.60933976, 0.60933976,\n",
       "       0.60420333, 0.60609961, 0.60795887, 0.60913526, 0.60913526,\n",
       "       0.60065042, 0.59681591, 0.6003349 , 0.59660958, 0.59834366,\n",
       "       0.60172682, 0.59979077, 0.59979077, 0.59979077, 0.59979077,\n",
       "       0.60464123, 0.60464123, 0.60620866, 0.60620866, 0.60620866,\n",
       "       0.60431065, 0.60431065, 0.60431065, 0.60400795, 0.6055166 ,\n",
       "       0.60700385, 0.60700385, 0.6099163 , 0.61134254, 0.61413747,\n",
       "       0.61232193, 0.61232193, 0.6136879 , 0.61636743, 0.6176818 ,\n",
       "       0.6176818 , 0.62152799, 0.62152799, 0.62277897, 0.62277897,\n",
       "       0.624015  , 0.62523641, 0.62644353, 0.62998227, 0.62998227,\n",
       "       0.6281941 , 0.6281941 , 0.6281941 , 0.63048707, 0.63273071,\n",
       "       0.63492707, 0.6381372 , 0.6374489 , 0.63848795, 0.6395169 ,\n",
       "       0.6395169 , 0.64053596, 0.64053596, 0.64053596, 0.63884626,\n",
       "       0.63985673, 0.63985673, 0.6408578 , 0.63820983, 0.64118877,\n",
       "       0.64056071, 0.64343912, 0.64187655, 0.64375748, 0.64129513,\n",
       "       0.63980375, 0.64351305, 0.64351305, 0.64063446, 0.63924138,\n",
       "       0.6343164 , 0.6343164 , 0.63211019, 0.63211019, 0.62992392,\n",
       "       0.62992392, 0.63085629, 0.62962791, 0.6323845 , 0.6323845 ,\n",
       "       0.6311798 , 0.6320857 , 0.63387921, 0.63564894, 0.63564894,\n",
       "       0.63564894, 0.63652512, 0.63446713, 0.63446713, 0.63418406,\n",
       "       0.63217064, 0.63217064, 0.63304663, 0.63304663, 0.63391715,\n",
       "       0.63564207, 0.63428397, 0.63235332, 0.63235332, 0.63235332,\n",
       "       0.63320765, 0.63025863, 0.63025863, 0.63111243, 0.63111243,\n",
       "       0.63111243, 0.63196135, 0.63280546, 0.63094116, 0.63262419,\n",
       "       0.63262419, 0.63262419, 0.63345874, 0.63511423, 0.63328539,\n",
       "       0.63493179, 0.6365609 , 0.63476188, 0.63557428, 0.63460412,\n",
       "       0.63283788, 0.63365004, 0.63445814, 0.63445814, 0.63445814,\n",
       "       0.63526223, 0.6343236 , 0.6343236 , 0.63499629, 0.63499629,\n",
       "       0.63499629, 0.63329148, 0.6340875 , 0.6340875 , 0.63645336,\n",
       "       0.63801261, 0.63801261, 0.63878697, 0.63878697, 0.63955789,\n",
       "       0.64032542, 0.6410896 , 0.6410896 , 0.64260807, 0.64260807,\n",
       "       0.64336245, 0.6417144 , 0.6417144 , 0.64246905, 0.64396895,\n",
       "       0.64396895, 0.64396895, 0.64396895, 0.64308969, 0.64383534,\n",
       "       0.64222368, 0.63978099, 0.64053028, 0.64053028, 0.63970236,\n",
       "       0.63808279, 0.63882951, 0.63882951, 0.6432518 , 0.64397951,\n",
       "       0.64397951, 0.64246068, 0.64246068, 0.6416808 , 0.64018103,\n",
       "       0.64091194, 0.64015389, 0.63867528, 0.63940644, 0.63721123,\n",
       "       0.63576054, 0.63576054, 0.63722571, 0.63722571, 0.63722571,\n",
       "       0.63508994, 0.63508994, 0.63366831, 0.63366831, 0.63225373,\n",
       "       0.63298978, 0.63298978, 0.63298978, 0.63018602, 0.63166003,\n",
       "       0.6303656 , 0.63109888, 0.63109888, 0.62701514, 0.62995095,\n",
       "       0.62861039, 0.62934091, 0.62755775, 0.62624874, 0.62697857,\n",
       "       0.62843217, 0.62786005, 0.62786005, 0.62858374, 0.62858374,\n",
       "       0.62858374, 0.6293055 , 0.63074331, 0.63145941, 0.63145941,\n",
       "       0.63089407, 0.62906865, 0.62978457, 0.62924017, 0.62995426,\n",
       "       0.63137724, 0.63012887, 0.62959777, 0.63030836, 0.62784294,\n",
       "       0.62733122, 0.62733122, 0.62440469, 0.62200205, 0.62200205,\n",
       "       0.62415124, 0.62296105, 0.62438887, 0.62202734, 0.62416613,\n",
       "       0.6225427 , 0.62165226, 0.62378127, 0.62378127, 0.6244882 ,\n",
       "       0.6244882 , 0.62405059, 0.62405059, 0.62475615, 0.62502792,\n",
       "       0.62573089, 0.62573089, 0.6264326 , 0.6264326 , 0.6264326 ,\n",
       "       0.62530351, 0.62530351, 0.62488116, 0.62153095, 0.62223635,\n",
       "       0.62364355, 0.62364355, 0.62364355, 0.62434538, 0.62714127,\n",
       "       0.62604125, 0.62604125, 0.62564322, 0.62455121, 0.6266439 ,\n",
       "       0.62447676, 0.62409696, 0.62479479, 0.62549162, 0.62618746,\n",
       "       0.62688233, 0.62544172, 0.62613687, 0.62613687, 0.62613687,\n",
       "       0.6275244 , 0.62646502, 0.6271585 , 0.6271585 , 0.6278511 ,\n",
       "       0.62748966, 0.62818158, 0.62608623, 0.62504293, 0.6240025 ,\n",
       "       0.6246977 , 0.6246977 , 0.6267784 , 0.62471405, 0.62471405,\n",
       "       0.62266072, 0.622335  , 0.622335  , 0.62201308, 0.62169493,\n",
       "       0.62207718, 0.62106975, 0.62176664, 0.62176664, 0.62246282,\n",
       "       0.62246282, 0.62155359, 0.6219541 , 0.6240398 , 0.62305351,\n",
       "       0.6244428 , 0.62219932, 0.62359045, 0.62261754, 0.62164682,\n",
       "       0.62137556, 0.62137556, 0.6218047 , 0.62154031, 0.61962449,\n",
       "       0.61962449, 0.62006794, 0.61981595, 0.62051479, 0.61767744,\n",
       "       0.61767744, 0.61673552, 0.61579548, 0.61579548, 0.61485733,\n",
       "       0.61485733, 0.61556029, 0.61439502, 0.61439502, 0.61253442,\n",
       "       0.61253442, 0.61160679, 0.61301796, 0.61095679, 0.61095679,\n",
       "       0.6100381 , 0.61074557, 0.60982922, 0.61174667, 0.61295948,\n",
       "       0.61366676, 0.61366676, 0.61276053, 0.61185584, 0.61185584,\n",
       "       0.61398034, 0.61539574, 0.61520395, 0.61520395, 0.6150148 ,\n",
       "       0.61411914, 0.61411914, 0.61411914, 0.61411914, 0.61393468,\n",
       "       0.61464433, 0.6160633 , 0.61677264, 0.61748191, 0.61659296,\n",
       "       0.61641586, 0.61641586, 0.6171263 , 0.6178367 , 0.61925741,\n",
       "       0.61732449, 0.61874905, 0.61874905, 0.61946136, 0.61946136,\n",
       "       0.61946136, 0.61858474, 0.61858474, 0.61858474, 0.61770936,\n",
       "       0.61754945, 0.61754945, 0.61667712, 0.61667712, 0.61739206,\n",
       "       0.61810707, 0.620968  , 0.62311493, 0.62210231, 0.6228197 ,\n",
       "       0.6228197 , 0.6228197 , 0.6228197 , 0.62353726, 0.62353726,\n",
       "       0.62569112, 0.6248317 , 0.62469301, 0.62298069, 0.62212607,\n",
       "       0.62127244, 0.62114286, 0.62016626, 0.62076885, 0.61980418,\n",
       "       0.62041677, 0.61957484, 0.61957484, 0.61957484, 0.61789353,\n",
       "       0.6177853 , 0.61694729, 0.61757587, 0.61747466, 0.61664073,\n",
       "       0.61571128, 0.61571128, 0.61644789, 0.6156173 , 0.61709299,\n",
       "       0.61700334, 0.61700334, 0.61700334, 0.61608971, 0.61608971,\n",
       "       0.61608971, 0.61683093, 0.61683093, 0.61683093, 0.61683093,\n",
       "       0.61757264, 0.61831487, 0.61831487, 0.61905763, 0.61897816,\n",
       "       0.61815601, 0.61808004, 0.61808004, 0.61882618, 0.6195729 ,\n",
       "       0.61943254, 0.61943254, 0.61779913, 0.61616779, 0.61372446,\n",
       "       0.61442006, 0.61517562, 0.61512101, 0.6166367 , 0.61582739,\n",
       "       0.61582739, 0.61658688, 0.61734711, 0.61734711, 0.61882626,\n",
       "       0.61798025, 0.61794223, 0.6155326 , 0.61626983, 0.61626983,\n",
       "       0.61704104, 0.6177866 , 0.61776238, 0.61696394, 0.61774047,\n",
       "       0.61774047, 0.61929635, 0.61927983, 0.61609808, 0.61766564,\n",
       "       0.61845094, 0.61845094, 0.61765764, 0.61765198, 0.61685949,\n",
       "       0.61764767, 0.61685855, 0.61765275, 0.61686962, 0.61686962,\n",
       "       0.61529124, 0.61529124, 0.61450206, 0.61451287, 0.61372422,\n",
       "       0.61452599, 0.61373788, 0.61375386, 0.61375386, 0.61217848,\n",
       "       0.61219775, 0.61219775, 0.61221932, 0.61302953, 0.61384104,\n",
       "       0.6122694 , 0.61389873, 0.61311385, 0.61474976, 0.61556979,\n",
       "       0.6172569 , 0.61730224, 0.61652102, 0.61652102, 0.61573956,\n",
       "       0.6141759 , 0.6141759 , 0.61104523, 0.61354991, 0.6127683 ,\n",
       "       0.61198634, 0.61126181, 0.61047935, 0.61060269, 0.60982022,\n",
       "       0.61066806, 0.61073591, 0.61244136, 0.61415378, 0.61587333,\n",
       "       0.61587333, 0.61518009, 0.61518009, 0.61371032, 0.61215062,\n",
       "       0.61067955, 0.60989766, 0.6108694 , 0.61008754, 0.61195551,\n",
       "       0.61195551, 0.61117431, 0.61117431, 0.61206263, 0.61206263,\n",
       "       0.61295304, 0.61217252, 0.61217252, 0.61150391, 0.61072184,\n",
       "       0.61072184, 0.61161936, 0.61095542, 0.61185879, 0.61185879,\n",
       "       0.61276441, 0.61120037, 0.60897423, 0.60844902, 0.60950867,\n",
       "       0.60714455, 0.60714455, 0.60714455, 0.60635446, 0.60635446,\n",
       "       0.60477109, 0.60397778, 0.60440309, 0.6053457 , 0.60455082,\n",
       "       0.60455082, 0.60375476, 0.60470158, 0.60565114, 0.60660347,\n",
       "       0.60596901, 0.60613269, 0.60629958, 0.60823639, 0.60939082,\n",
       "       0.60957582, 0.6097643 , 0.60896771, 0.60816973, 0.60816973,\n",
       "       0.60915919, 0.60915919, 0.60836068, 0.60855516, 0.6107602 ,\n",
       "       0.60916022, 0.60835795, 0.60856638, 0.6069559 , 0.60738136,\n",
       "       0.60738136, 0.60738136, 0.60657231, 0.60863087, 0.6096656 ,\n",
       "       0.6096656 , 0.6096656 , 0.6096656 , 0.6096656 , 0.60804827,\n",
       "       0.60723703, 0.60397426, 0.603154  , 0.60255619, 0.60255619,\n",
       "       0.60173123, 0.60090432, 0.6019585 , 0.60030071, 0.59946879,\n",
       "       0.59779878, 0.59886188, 0.59992907, 0.5995671 , 0.5995671 ,\n",
       "       0.59872648, 0.59872648, 0.60005788, 0.59921488, 0.59921488,\n",
       "       0.59946543, 0.5997203 , 0.60082625, 0.60082625, 0.60109123,\n",
       "       0.59939291, 0.60078437, 0.60078437, 0.60106189, 0.60020754,\n",
       "       0.59935063, 0.5944242 , 0.59469926, 0.59701981, 0.59731277,\n",
       "       0.59761079, 0.59791395, 0.59791395, 0.59703235, 0.59822234,\n",
       "       0.59822234, 0.59645266, 0.59707849, 0.59618535, 0.59618535,\n",
       "       0.59618535, 0.59438933, 0.5968294 , 0.59805865, 0.60214592,\n",
       "       0.60214592, 0.60124981, 0.60035027, 0.60071471, 0.59980974,\n",
       "       0.5989012 , 0.59926806, 0.5987251 , 0.59688112, 0.59688112,\n",
       "       0.59688112, 0.59818072, 0.59948754, 0.599879  , 0.59802179,\n",
       "       0.59747879, 0.59881684, 0.59787752, 0.59964097, 0.59964097,\n",
       "       0.59964097, 0.59869686, 0.59774843, 0.59721151, 0.59806652,\n",
       "       0.59710134, 0.59753811, 0.59895364, 0.59798307, 0.59798307,\n",
       "       0.5984364 , 0.5988983 , 0.5988983 , 0.5988983 , 0.5969311 ,\n",
       "       0.59494336, 0.5929345 , 0.5929345 , 0.59090392, 0.59237099,\n",
       "       0.59237099, 0.59384803, 0.59282879, 0.59479769, 0.59273968,\n",
       "       0.59425708, 0.59322158, 0.59218005, 0.5911324 , 0.59161648,\n",
       "       0.59055873, 0.58949457, 0.59261441, 0.59419179, 0.59472072,\n",
       "       0.59365376, 0.59365376, 0.59258006, 0.59258006, 0.59149952,\n",
       "       0.59041204, 0.58983639, 0.58925549, 0.59090762, 0.59090762,\n",
       "       0.59090762, 0.5914606 , 0.59827321, 0.59827321, 0.59827321,\n",
       "       0.59779644, 0.59667672, 0.59554893, 0.59731682, 0.59731682,\n",
       "       0.59910014, 0.59797132, 0.60159291, 0.60230252, 0.60230252,\n",
       "       0.60116848, 0.60116848, 0.60002575, 0.60002575, 0.60188989,\n",
       "       0.60074248, 0.59958608, 0.59958608, 0.601476  , 0.601476  ,\n",
       "       0.60338375, 0.6010607 , 0.59869975, 0.59869975, 0.59869975,\n",
       "       0.59869975, 0.59869975, 0.59825265, 0.59825265, 0.59825265,\n",
       "       0.59825265, 0.59704189, 0.59458911, 0.59458911, 0.59458911,\n",
       "       0.5965756 , 0.59533784, 0.59533784, 0.59282925, 0.5889806 ,\n",
       "       0.58767399, 0.58839999, 0.58839999, 0.58839999, 0.58839999,\n",
       "       0.58839999, 0.58781063, 0.58856771, 0.58856771, 0.58721191,\n",
       "       0.58721191, 0.58934535, 0.59014432, 0.59014432, 0.58877173,\n",
       "       0.58877173, 0.58877173, 0.58958433, 0.58958433, 0.58677836,\n",
       "       0.58901534, 0.58986572, 0.59216358, 0.59074085, 0.59307372,\n",
       "       0.59307372, 0.59164176, 0.59164176, 0.58872895, 0.58872895,\n",
       "       0.58872895, 0.59111172, 0.58963696, 0.58963696, 0.59153767,\n",
       "       0.59657355, 0.59657355, 0.59657355, 0.5961468 , 0.59462008,\n",
       "       0.5925797 , 0.59098072, 0.59207681, 0.59207681, 0.59207681,\n",
       "       0.59044337, 0.59044337, 0.59321083, 0.58989458, 0.59104151,\n",
       "       0.59104151, 0.58759984, 0.58759984, 0.58759984, 0.59646701,\n",
       "       0.60262887, 0.60262887, 0.60092899, 0.60092899, 0.59920228,\n",
       "       0.6023906 , 0.61230098, 0.60888644, 0.60535511, 0.60535511,\n",
       "       0.60535511, 0.60535511, 0.59982289, 0.60337103, 0.60147804,\n",
       "       0.59758538, 0.59758538, 0.59758538, 0.59146154, 0.59146154,\n",
       "       0.59519437, 0.59900797, 0.60290518, 0.60485074, 0.60894915,\n",
       "       0.60479218, 0.60475112, 0.60026385, 0.60026385, 0.59794041,\n",
       "       0.59794041, 0.59794041, 0.60008536, 0.60715663, 0.60715663,\n",
       "       0.61209333, 0.61209333, 0.617768  , 0.62887358, 0.62887358,\n",
       "       0.62419548, 0.6217516 , 0.61923308, 0.61923308, 0.61923308,\n",
       "       0.61923308, 0.61395632, 0.6083307 , 0.61173499, 0.61173499,\n",
       "       0.60563832, 0.60242131, 0.60923357, 0.60923357, 0.62370126,\n",
       "       0.61739041, 0.61739041, 0.61739041, 0.63041933, 0.62714987,\n",
       "       0.62714987, 0.62714987, 0.62714987, 0.62714987, 0.62934453,\n",
       "       0.63903159, 0.63903159, 0.63558752, 0.63558752, 0.64599566,\n",
       "       0.64599566, 0.63894696, 0.63104801, 0.63104801, 0.62672644,\n",
       "       0.63897303, 0.63897303, 0.65207996, 0.65207996, 0.65207996,\n",
       "       0.66614285, 0.67811752, 0.67471899, 0.67104458, 0.68913271,\n",
       "       0.68219306, 0.68219306, 0.6782108 , 0.70069867, 0.69736423,\n",
       "       0.72383689, 0.72383689, 0.72163175, 0.71914334, 0.71914334,\n",
       "       0.71914334, 0.7092049 , 0.70465515, 0.70465515, 0.69914313,\n",
       "       0.69230788, 0.69230788, 0.6720205 , 0.6720205 , 0.6720205 ,\n",
       "       0.65592121, 0.65592121, 0.65592121, 0.63188078, 0.63188078,\n",
       "       0.51232757, 0.51232757, 0.51232757, 0.27386809, 0.27386809])"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "accu"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[3.64072590e-01, 6.35927410e-01],\n",
       "       [7.82493360e-04, 9.99217507e-01],\n",
       "       [1.40923248e-11, 1.00000000e+00],\n",
       "       ...,\n",
       "       [8.58400445e-06, 9.99991416e-01],\n",
       "       [9.99999990e-01, 1.00936503e-08],\n",
       "       [9.99923137e-01, 7.68626177e-05]])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train, X_test, Y_train, Y_test = train_test_split(train_features, train_labels.astype('int'), random_state=17)\n",
    "\n",
    "gnb = GaussianNB()\n",
    "y_pred1 = gnb.fit(X_train, Y_train).predict_proba(X_test)\n",
    "y_pred1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegression(max_iter=10000)"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.datasets import load_iris\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.naive_bayes import GaussianNB\n",
    "from sklearn.naive_bayes import MultinomialNB\n",
    "from sklearn.naive_bayes import ComplementNB\n",
    "from sklearn.naive_bayes import BernoulliNB \n",
    "from sklearn.naive_bayes import CategoricalNB\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.metrics import precision_score\n",
    "from sklearn.metrics import roc_curve                \n",
    "from sklearn.metrics import recall_score   \n",
    "from sklearn.metrics import f1_score                 \n",
    "from sklearn.datasets import make_classification    \n",
    "from sklearn.linear_model import LogisticRegression \n",
    "from sklearn.svm import LinearSVC, SVC\n",
    "from plotnine import *\n",
    "import plotnine\n",
    "import joblib\n",
    "from nltk.stem.wordnet import WordNetLemmatizer\n",
    "training_accuracy = []\n",
    "gnb_test_accuracy = []\n",
    "gnb_test_recall = []\n",
    "gnb_test_fscore = []\n",
    "bnb_test_accuracy = []\n",
    "bnb_test_recall = []\n",
    "bnb_test_fscore = []\n",
    "svm_test_accuracy = []\n",
    "svm_test_recall = []\n",
    "svm_test_fscore = []\n",
    "lr_test_accuracy=[]\n",
    "lr_test_recall=[]\n",
    "lr_test_fscore=[]\n",
    "gnb = GaussianNB()\n",
    "bnb = BernoulliNB()\n",
    "lr_clf = LogisticRegression(max_iter=10000)\n",
    "# train_last_hidden_states = joblib.load('../models/4251_clear.bert')\n",
    "# b_set = joblib.load('../models/4251_clear.data')\n",
    "# b_set['Sentence'] = b_set['Sentence'].apply(lambda w:' '.join([WordNetLemmatizer().lemmatize(word.lower()) for word in str(w).split()]))\n",
    "\n",
    "train_features = train_last_hidden_states[0][:,0,:].numpy()\n",
    "train_labels = b_set['SUBJpolit']\n",
    "\n",
    "svm_clf = SVC(C=0.8, kernel='linear', gamma=20, decision_function_shape='ovr',probability=True,class_weight=\"balanced\")\n",
    "sets = [0+(i/100)*2 for i in range(1,10)]\n",
    "r_set = range(1,10)\n",
    "thresset = [0.5,0.6,0.7,0.8]\n",
    "X_train, X_test, Y_train, Y_test = train_test_split(train_features, train_labels.astype('int'), random_state=17)\n",
    "\n",
    "gnb_clf = gnb.fit(X_train, Y_train)\n",
    "bnb_clf = bnb.fit(X_train, Y_train)\n",
    "svm_clf.fit(X_train, Y_train.ravel())\n",
    "lr_clf.fit(X_train, Y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 4/4 [00:09<00:00,  2.47s/it]\n"
     ]
    }
   ],
   "source": [
    "from tqdm import tqdm\n",
    "for i in tqdm(thresset):\n",
    "# i=0.8\n",
    "    y_pred = svm_clf.predict_proba(X_test)\n",
    "    y_pred = y_pred[:, 1]\n",
    "    y_pred_prob = (y_pred >  i).astype('int')+1\n",
    "    svm_acu = precision_score(Y_test, y_pred_prob,average='weighted')\n",
    "    svm_recall = recall_score(Y_test, y_pred_prob,average='weighted')\n",
    "    svm_fscore = f1_score(Y_test, y_pred_prob,average='weighted')\n",
    "    svm_test_accuracy.append(svm_acu)\n",
    "    svm_test_recall.append(svm_recall)\n",
    "    svm_test_fscore.append(svm_fscore)\n",
    "    y_pred2 = lr_clf.predict_proba(X_test)\n",
    "    y_pred2 = y_pred2[:, 1]\n",
    "    y_pred_prob2 = (y_pred2 > i).astype('int')+1\n",
    "    lr_accuracy = precision_score(Y_test, y_pred_prob2,average='weighted')\n",
    "    lr_recall = recall_score(Y_test, y_pred_prob2,average='weighted')\n",
    "    lr_fscore = f1_score(Y_test, y_pred_prob2,average='weighted')\n",
    "    lr_test_accuracy.append(lr_accuracy)\n",
    "    lr_test_recall.append(lr_recall)\n",
    "    lr_test_fscore.append(lr_fscore)\n",
    "    y_pred1 = gnb_clf.predict_proba(X_test)\n",
    "    y_pred1 = y_pred1[:, 1]\n",
    "    y_pred1_prob = (y_pred1 >  i).astype('int')+1\n",
    "    y_pred4 = bnb_clf.predict_proba(X_test)\n",
    "    y_pred4 = y_pred4[:, 1]\n",
    "    y_pred4_prob = (y_pred4 >  i).astype('int')+1\n",
    "    gnb_test_accuracy.append(precision_score(Y_test,y_pred1_prob,average='weighted'))\n",
    "    gnb_test_recall.append(recall_score(Y_test,y_pred1_prob,average='weighted'))\n",
    "    gnb_test_fscore.append(f1_score(Y_test,y_pred1_prob,average='weighted'))\n",
    "    bnb_test_recall.append(recall_score(Y_test,y_pred4_prob,average='weighted'))\n",
    "    bnb_test_fscore.append(f1_score(Y_test,y_pred4_prob,average='weighted'))\n",
    "    bnb_test_accuracy.append(precision_score(Y_test,y_pred4_prob,average='weighted'))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "grid = plt.GridSpec(7, 3, wspace=0.5, hspace=0.5)\n",
    "plt.subplot(grid[0:7,0:3])\n",
    "plt.plot(thresset, lr_test_accuracy, label=\"LR accuracy\")\n",
    "plt.plot(thresset, lr_test_recall, label=\"LR recall\")\n",
    "plt.plot(thresset, lr_test_fscore, label=\"LR f1-score\")\n",
    "plt.ylabel(\"value\")\n",
    "plt.xlabel(\"threshold\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "plt.subplot(grid[0:7,0:3])\n",
    "plt.plot(thresset, svm_test_accuracy, label=\"SVM accuracy\")\n",
    "plt.plot(thresset, svm_test_recall, label=\"SVM recall\")\n",
    "plt.plot(thresset, svm_test_fscore, label=\"SVM f1-score\")\n",
    "plt.ylabel(\"value\")\n",
    "plt.xlabel(\"threshold\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "plt.subplot(grid[0:7,0:3])\n",
    "plt.plot(thresset, gnb_test_accuracy, label=\"GaussianNB accuracy\")\n",
    "plt.plot(thresset, gnb_test_recall, label=\"GaussianNB recall\")\n",
    "plt.plot(thresset, gnb_test_fscore, label=\"GaussianNB f1-score\")\n",
    "plt.ylabel(\"value\")\n",
    "plt.xlabel(\"threshold\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "plt.subplot(grid[0:7,0:3])\n",
    "plt.plot(thresset, bnb_test_accuracy, label=\"BernoulliNB accuracy\")\n",
    "plt.plot(thresset, bnb_test_recall, label=\"BernoulliNB recall\")\n",
    "plt.plot(thresset, bnb_test_fscore, label=\"BernoulliNB f1-score\")\n",
    "plt.ylabel(\"value\")\n",
    "plt.xlabel(\"threshold\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[]\n",
      "[]\n",
      "[]\n",
      "[]\n",
      "[]\n",
      "[]\n",
      "[]\n",
      "[]\n",
      "[]\n",
      "[]\n",
      "[]\n",
      "[]\n"
     ]
    }
   ],
   "source": [
    "training_accuracy = []\n",
    "gnb_test_accuracy = []\n",
    "gnb_test_recall = []\n",
    "gnb_test_fscore = []\n",
    "bnb_test_accuracy = []\n",
    "bnb_test_recall = []\n",
    "bnb_test_fscore = []\n",
    "svm_test_accuracy = []\n",
    "svm_test_recall = []\n",
    "svm_test_fscore = []\n",
    "lr_test_accuracy=[]\n",
    "lr_test_recall=[]\n",
    "lr_test_fscore=[]\n",
    "print(gnb_test_accuracy)\n",
    "print(gnb_test_recall)\n",
    "print(gnb_test_fscore)\n",
    "print(bnb_test_accuracy)\n",
    "print(bnb_test_recall)\n",
    "print(bnb_test_fscore)\n",
    "print(svm_test_accuracy)\n",
    "print(svm_test_recall)\n",
    "print(svm_test_fscore)\n",
    "print(lr_test_accuracy)\n",
    "print(lr_test_recall)\n",
    "print(lr_test_fscore)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print(\"best lr: %f, avg: %f\" % (max(lr_test_accuracy),(sum(lr_test_accuracy)/len(lr_test_accuracy))))\n",
    "print(\"best svm: %f, avg: %f\" % (max(svm_test_accuracy),(sum(svm_test_accuracy)/len(svm_test_accuracy))))\n",
    "print(\"best gnb: %f, avg: %f\" % (max(gnb_test_accuracy),(sum(gnb_test_accuracy)/len(gnb_test_accuracy))))\n",
    "print(\"best bb: %f, avg: %f\" % (max(bnb_test_accuracy),(sum(bnb_test_accuracy)/len(bnb_test_accuracy))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.6182795698924731,\n",
       " 0.6196236559139785,\n",
       " 0.6021505376344086,\n",
       " 0.6075268817204301,\n",
       " 0.5873655913978495,\n",
       " 0.5940860215053764,\n",
       " 0.6236559139784946,\n",
       " 0.635752688172043,\n",
       " 0.6196236559139785,\n",
       " 0.5846774193548387,\n",
       " 0.6008064516129032]"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svm_test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, ..., False,  True, False])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(y_pred1>0.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.6406396989651929,\n",
       " 0.6199435559736595,\n",
       " 0.6077140169332079,\n",
       " 0.6180620884289746,\n",
       " 0.632173095014111,\n",
       " 0.6142991533396049,\n",
       " 0.625587958607714,\n",
       " 0.6312323612417686,\n",
       " 0.6180620884289746]"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_test_fscore"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.6406396989651929,\n",
       " 0.6199435559736595,\n",
       " 0.6077140169332079,\n",
       " 0.6180620884289746,\n",
       " 0.632173095014111,\n",
       " 0.6142991533396049,\n",
       " 0.625587958607714,\n",
       " 0.6312323612417686,\n",
       " 0.6180620884289746]"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_test_recall"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.31586021505376344]"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svm_test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.3333333333333333,\n",
       " 1.0,\n",
       " 0.6666666666666666,\n",
       " 1.0,\n",
       " 0.5,\n",
       " 1.0,\n",
       " 0.8333333333333334,\n",
       " 0.5,\n",
       " 0.6666666666666666,\n",
       " 1.0,\n",
       " 0.5]"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.3333333333333333,\n",
       " 0.8333333333333334,\n",
       " 0.6666666666666666,\n",
       " 0.8333333333333334,\n",
       " 0.6666666666666666,\n",
       " 0.8333333333333334,\n",
       " 0.8333333333333334,\n",
       " 0.6666666666666666,\n",
       " 0.8333333333333334,\n",
       " 0.8333333333333334,\n",
       " 0.5]"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gnb_test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.3333333333333333,\n",
       " 0.8333333333333334,\n",
       " 0.6666666666666666,\n",
       " 1.0,\n",
       " 0.5,\n",
       " 0.6666666666666666,\n",
       " 0.6666666666666666,\n",
       " 0.3333333333333333,\n",
       " 0.5,\n",
       " 0.6666666666666666,\n",
       " 0.6666666666666666]"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bnb_test_accuracy"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
